diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2022-10-05 15:19:27 +0700 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2022-10-05 15:19:27 +0700 |
| commit | 14cb30c3f2fb8b15baaf32ab9fca7bb9bda73845 (patch) | |
| tree | e4039e13e934db6ee148f766882bb82af8db1d7a /indoteknik_api/controllers/controller.py | |
| parent | d1bc570eae2818bc4b535840f2eb3061b99ca98b (diff) | |
Update struktur API and fitur API flash sale
Diffstat (limited to 'indoteknik_api/controllers/controller.py')
| -rw-r--r-- | indoteknik_api/controllers/controller.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py new file mode 100644 index 00000000..fb5f1fce --- /dev/null +++ b/indoteknik_api/controllers/controller.py @@ -0,0 +1,48 @@ +import datetime +import base64 +import json + +from odoo import http +from odoo.http import request +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 time_to_str(self, object, format): + time = '' + if isinstance(object, datetime.datetime): + time = object.astimezone(timezone('Asia/Jakarta')).strftime(format) + return time + + def response(self, data=[], code=200, description='OK'): + response = { + 'status': { + 'code': code, + 'description': description + } + } + if code == 200: + response.update({'result': data}) + + response = json.dumps(response) + return request.make_response(response, [('Content-Type', 'application/json')]) + + def search_with_api_params(self, model: str, kw, domain=[]): + """ 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) + + @http.route('/api/image/<model>/<field>/<id>', auth='public', methods=['GET']) + def get_image(self, model, field, id): + model = request.env[model].sudo().search([('id', '=', id)], limit=1) + image = model[field] if model[field] else '' + return request.make_response(base64.b64decode(image), [('Content-Type', 'image/jpg')]) |
