diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-17 11:52:04 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-17 11:52:04 +0700 |
| commit | 015ca8f0ae8ecdaaf388ee08420af54a84fb2d0c (patch) | |
| tree | 6e95bf27732dc9958ab161363a121bd46d68b717 /indoteknik_api/controllers/api_v1 | |
| parent | 719dc824379bff729a97007432ef6871954b0980 (diff) | |
| parent | 4eb477f655231e39eaacb4453f216692a8355bac (diff) | |
Merge branch 'release' into staging
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/flash_sale.py | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/indoteknik_api/controllers/api_v1/flash_sale.py b/indoteknik_api/controllers/api_v1/flash_sale.py index ea73ab1b..cad2cb61 100644 --- a/indoteknik_api/controllers/api_v1/flash_sale.py +++ b/indoteknik_api/controllers/api_v1/flash_sale.py @@ -10,6 +10,55 @@ _logger = logging.getLogger(__name__) class FlashSale(controller.Controller): prefix = '/api/v1/' + @http.route(prefix + 'flashsale/header', auth='public', methods=['GET']) + @controller.Controller.must_authorized() + def _get_flash_sale_header(self, **kw): + try: + # base_url = request.env['ir.config_parameter'].get_param('web.base.url') + active_flash_sale = request.env['product.pricelist'].get_active_flash_sale() + data = [] + for pricelist in active_flash_sale: + query = [ + ('pricelist_id', '=', pricelist.id) + ] + data.append({ + 'pricelist_id': pricelist.id, + 'option': pricelist.flashsale_option, + 'name': pricelist.name, + 'banner': request.env['ir.attachment'].api_image('product.pricelist', 'banner', pricelist.id), + 'banner_mobile': request.env['ir.attachment'].api_image('product.pricelist', 'banner_mobile', pricelist.id), + 'duration': round((pricelist.end_date - datetime.now()).total_seconds()), + 'product_total': request.env['product.pricelist.item'].search_count(query), + }) + return self.response(data) + except Exception as e: + _logger.info(self.prefix + '/flashsale/header: ' + str(e)) + return self.response(code=500, description='Internal server error') + + @http.route(prefix + 'flashsale/line', auth='public', methods=['GET']) + @controller.Controller.must_authorized() + def _get_flash_sale_line(self, **kw): + try: + # base_url = request.env['ir.config_parameter'].get_param('web.base.url') + pricelist_id = int(kw.get('pricelist_id'),0) + limit = int(kw.get('limit'),0) + offset = int(kw.get('offset'),0) + + if pricelist_id == 0 or limit == 0: + return self.response(code=500, description='Internal Server error') + + pricelist_items = request.env['product.pricelist.item'].search([('pricelist_id', '=', pricelist_id)], limit=limit, offset=offset) + data = { + 'total': request.env['product.pricelist.item'].search_count([('pricelist_id', '=', pricelist_id)]), + 'products': [request.env['product.pricelist.item'].api_single_response(x) for x in pricelist_items] + } + return self.response(data) + + except Exception as e: + _logger.info(self.prefix + '/flashsale/line: ' + str(e)) + return self.response(code=500, description='Internal Server error') + + @http.route(prefix + 'flash_sale', auth='public', methods=['GET']) @controller.Controller.must_authorized() def get_flash_sale(self, **kw): @@ -54,6 +103,6 @@ class FlashSale(controller.Controller): else: return self.response(code=404, description='Data not found') except Exception as e: - _logger.info(self.prefix_url + '/flash_sale: ' + str(e)) + _logger.info(self.prefix + '/flash_sale: ' + str(e)) return self.response(code=500, description='Internal server error')
\ No newline at end of file |
