from .. import controller from odoo import http from odoo.http import request class ProductVariant(controller.Controller): prefix = '/api/v1/' @http.route(prefix + 'product_variant/', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() def get_product_variant_by_id(self, **kw): id = kw.get('id') if not id: return self.response(code=400, description='id is required') data = [] id = [int(x) for x in id.split(',')] product_products = request.env['product.product'].search([('id', 'in', id)]) if product_products: data = [request.env['product.product'].api_single_response(x) for x in product_products] return self.response(data) @http.route(prefix + 'product-variant//promotions', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() def get_product_variant_promotions(self, product_id): product_id = int(product_id) user_data = self.verify_user_token() program_line = request.env['promotion.program.line'] program_lines = program_line.get_active_promotions(product_id) program_lines = program_lines.formats(user=user_data) return self.response(program_lines)