import datetime from odoo import http from odoo.http import request import json from pytz import timezone class ApiController(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 search_with_api_params(self, model: str, kw, default_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 return request.env[model].search(domain, limit=int(limit), offset=int(offset), order=order)