summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-12-21 18:48:38 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-12-21 18:48:38 +0700
commitdb2f280683b29ac5d32158f3fab0f3df671935e9 (patch)
tree83624efbd3e7abc705c8d987994cf2c1b7612284 /indoteknik_api/controllers/api_v1
parenta08dfcb0d1f99a99686a8fba948fae7d4eca374e (diff)
add website categories homepage module
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/category.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/indoteknik_api/controllers/api_v1/category.py b/indoteknik_api/controllers/api_v1/category.py
index 88296d58..36e67e01 100644
--- a/indoteknik_api/controllers/api_v1/category.py
+++ b/indoteknik_api/controllers/api_v1/category.py
@@ -6,7 +6,40 @@ import ast
class Category(controller.Controller):
prefix = '/api/v1/'
-
+
+ @http.route(prefix + 'categories_homepage', auth='public', methods=['GET', 'OPTIONS'])
+ def get_categories_homepage(self, **kw):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+ base_url = request.env['ir.config_parameter'].get_param('web.base.url')
+ query = [('status', '=', 'tayang')]
+ categories = request.env['website.categories.homepage'].search(query, order='sequence')
+ data = []
+ for category in categories:
+ query_product = [
+ ('active', '=', True),
+ ('type', '=', 'product'),
+ ('product_rating', '>', 0),
+ ('public_categ_ids', 'child_of', [category.category_id.id])
+ ]
+ products = request.env['product.template'].search(query_product, order='product_rating desc', limit=12)
+ # product_brands = []
+ brands = request.env['x_manufactures'].search([
+ ('product_tmpl_ids.public_categ_ids', 'child_of', [category.category_id.id])
+ ], limit=8)
+
+ data.append({
+ 'id': category.id,
+ 'sequence': category.sequence,
+ 'category_id': category.category_id.id,
+ 'name': category.category_id.name,
+ 'image': base_url + 'api/image/website.categories.homepage/image/' + str(category.id) if category.image else '',
+ 'url': category.url,
+ 'brands': [y.x_name for y in brands],
+ 'products': [request.env['product.template'].api_single_response(x) for x in products]
+ })
+ return self.response(data)
+
@http.route(prefix + 'category/page/<page>', auth='public', methods=['GET'])
def get_category(self, **kw):
if not self.authenticate():