1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
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)
|