summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/controller.py
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2022-10-11 15:58:58 +0700
committerIT Fixcomart <it@fixcomart.co.id>2022-10-11 15:58:58 +0700
commitdae117ce9bb219557c9a4fc995e93bc4a88ea03f (patch)
tree62f51e1c8290651606759fc8d31a2662e7878590 /indoteknik_api/controllers/controller.py
parentfd6af0fbd83042c8471c3c58ff459f52bed45938 (diff)
init commit
Diffstat (limited to 'indoteknik_api/controllers/controller.py')
-rw-r--r--indoteknik_api/controllers/controller.py33
1 files changed, 26 insertions, 7 deletions
diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py
index fb5f1fce..c02f6b60 100644
--- a/indoteknik_api/controllers/controller.py
+++ b/indoteknik_api/controllers/controller.py
@@ -1,3 +1,4 @@
+from array import array
import datetime
import base64
import json
@@ -8,11 +9,29 @@ from pytz import timezone
class Controller(http.Controller):
- def authenticate(self, kw):
- db = kw.get('db')
- username = kw.get('username')
- password = kw.get('password')
- request.session.authenticate(db, username, password)
+ def authenticate(self):
+ try:
+ wsgienv = request.httprequest.environ
+ db = wsgienv['HTTP_DB']
+ username = wsgienv['HTTP_USERNAME']
+ password = wsgienv['HTTP_PASSWORD']
+ request.session.authenticate(db, username, password)
+ return True
+ except:
+ return False
+
+ def validate_request(self, rules: dict, kw: dict):
+ validation = {
+ 'status': True,
+ 'reason': []
+ }
+ for key in rules:
+ values = rules[key]
+ for value in values:
+ if value == 'required' and not kw.get(key):
+ validation['status'] = False
+ validation['reason'].append(key + ' is ' + value)
+ return validation
def time_to_str(self, object, format):
time = ''
@@ -33,13 +52,13 @@ class Controller(http.Controller):
response = json.dumps(response)
return request.make_response(response, [('Content-Type', 'application/json')])
- def search_with_api_params(self, model: str, kw, domain=[]):
+ def search_filter(self, model: str, kw: dict, query: array = []):
""" To search data by default API Params if exist """
limit = kw.get('limit', 0)
offset = kw.get('offset', 0)
order = kw.get('order', '')
- return request.env[model].search(domain, limit=int(limit), offset=int(offset), order=order)
+ return request.env[model].search(query, limit=int(limit), offset=int(offset), order=order)
@http.route('/api/image/<model>/<field>/<id>', auth='public', methods=['GET'])
def get_image(self, model, field, id):