summaryrefslogtreecommitdiff
path: root/indoteknik_custom/controllers/api_controller.py
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2022-09-27 14:41:16 +0700
committerIT Fixcomart <it@fixcomart.co.id>2022-09-27 14:41:16 +0700
commit469dd515bacbd4f76265860a9d7c8c745cb5bcf0 (patch)
treee0e086990d2d2afeb87356af2ff81a518395f716 /indoteknik_custom/controllers/api_controller.py
parentd057901e1b30dc24978ec345e4daec1d16abf117 (diff)
fix rest api response, image api, search product api
Diffstat (limited to 'indoteknik_custom/controllers/api_controller.py')
-rw-r--r--indoteknik_custom/controllers/api_controller.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/indoteknik_custom/controllers/api_controller.py b/indoteknik_custom/controllers/api_controller.py
index cb5fae60..faf8b640 100644
--- a/indoteknik_custom/controllers/api_controller.py
+++ b/indoteknik_custom/controllers/api_controller.py
@@ -1,4 +1,5 @@
import datetime
+import base64
from odoo import http
from odoo.http import request
@@ -19,14 +20,32 @@ class ApiController(http.Controller):
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})
- def search_with_api_params(self, model: str, kw, default_domain=[]):
+ response = json.dumps(response)
+ return request.make_response(response, [('Content-Type', 'application/json')])
+
+ def search_with_api_params(self, model: str, kw, domain=[]):
limit = kw.get('limit', 0)
offset = kw.get('offset', 0)
order = kw.get('order', '')
- domain = kw.get('domain', [])
- if domain:
- domain = json.loads(domain)
- domain += default_domain
+ # domain = kw.get('domain', [])
+ # if domain:
+ # domain = json.loads(domain)
+ # domain += default_domain
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')])