summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-04-17 11:52:04 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-04-17 11:52:04 +0700
commit015ca8f0ae8ecdaaf388ee08420af54a84fb2d0c (patch)
tree6e95bf27732dc9958ab161363a121bd46d68b717 /indoteknik_api/controllers/api_v1
parent719dc824379bff729a97007432ef6871954b0980 (diff)
parent4eb477f655231e39eaacb4453f216692a8355bac (diff)
Merge branch 'release' into staging
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/flash_sale.py51
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