from .. import controller from odoo import http from odoo.http import request class WebsiteContent(controller.Controller): prefix = '/api/v1/' @http.route(prefix + 'product_ads', auth='public', methods=['GET', 'OPTIONS']) def get_product_ads(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 = [ ('page', '=', 'product'), ('status', '=', 'tayang') ] ads = request.env['website.ads'].search(query, order='sequence') data = [] for ad in ads: data.append({ 'id': ad.id, 'name': ad.name, 'image': base_url + 'api/image/website.ads/image/' + str(ad.id) if ad.image else '', 'url': ad.url, }) return self.response(data) @http.route(prefix + 'video_content', auth='public', methods=['GET', 'OPTIONS']) def get_video_content(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'), ('slide_type', '=', 'video')] limit = int(kw.get('limit', 0)) offset = int(kw.get('offset', 0)) videos = request.env['website.content'].search(query, limit=limit, offset=offset, order='sequence') # data = [] data = { 'video_total': request.env['website.content'].search_count(query), 'videos': [request.env['website.content'].api_single_response(x) for x in videos] } return self.response(data)