summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/controller.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2023-04-28 09:03:04 +0700
committerstephanchrst <stephanchrst@gmail.com>2023-04-28 09:03:04 +0700
commit57d55f545da0fc501a9828bb3ca2988f126b241a (patch)
tree75b98126546eea20b90ca777b2887b4813946871 /indoteknik_api/controllers/controller.py
parent3592c254ca5baf4a0a769f500f9e28a9cbc272a7 (diff)
parent6fa5de951abc02884eb37cdc6786c0f3d141ccc5 (diff)
Merge branch 'staging' into release
Diffstat (limited to 'indoteknik_api/controllers/controller.py')
-rw-r--r--indoteknik_api/controllers/controller.py50
1 files changed, 24 insertions, 26 deletions
diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py
index f419f66e..5b20f7d4 100644
--- a/indoteknik_api/controllers/controller.py
+++ b/indoteknik_api/controllers/controller.py
@@ -54,7 +54,15 @@ class Controller(http.Controller):
if user_token:
result = user_token
return result
-
+
+ def user_pricelist(self):
+ user_token = self.authenticate()
+ pricelist = False
+ if isinstance(user_token, dict):
+ partner = request.env['res.partner'].browse(user_token['partner_id'])
+ if partner: pricelist = partner.property_product_pricelist
+ return pricelist
+
def get_request_params(self, kw, queries):
result = {
'valid': True,
@@ -62,40 +70,30 @@ class Controller(http.Controller):
'value': {},
'query': {}
}
- for key in queries:
- rules = queries[key]
- is_number = len([r for r in rules if r == 'number']) > 0
-
- has_alias = [r for r in rules if r.startswith('alias:')]
- alias = key
- if len(has_alias) > 0:
- alias = has_alias[0].replace('alias:', '')
-
- has_default = [r for r in rules if r.startswith('default:')]
- default = None
- if len(has_default) > 0:
- default = has_default[0].replace('default:', '')
-
- value = kw.get(key, '')
- if value in ['null', 'undefined']:
+
+ for key, rules in queries.items():
+ is_number = 'number' in rules
+ alias = next((r.replace('alias:', '') for r in rules if r.startswith('alias:')), key)
+ default = next((r.replace('default:', '') for r in rules if r.startswith('default:')), None)
+
+ if (value := kw.get(key, '')) in ['null', 'undefined']:
value = ''
- for rule in rules:
- if rule == 'required' and not value:
- result['reason'].append(key + ' is ' + rule)
- elif rule == 'number' and value and not value.isdigit():
- result['reason'].append(key + ' must be ' + rule)
+ if 'required' in rules and not value:
+ result['reason'].append(f"{key} is required")
+ if 'number' in rules and value and not value.isdigit():
+ result['reason'].append(f"{key} must be a number")
result['query'][key] = value
+
if not value and default:
value = default
if is_number and value.isdigit():
value = int(value)
- if not value and not default:
- value = None
+
result['value'][alias] = value
- if len(result['reason']) > 0:
- result['valid'] = False
+ result['valid'] = not result['reason']
+
return result
def time_to_str(self, object, format):