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
44
45
46
47
48
49
50
|
from .. import controller
from odoo import http
from odoo.http import request
class Courier(controller.Controller):
prefix = '/api/v1/'
PREFIX_PARTNER = prefix + 'partner/<partner_id>/'
@http.route(prefix + 'courier', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
def get_courier(self):
base_url = request.env['ir.config_parameter'].get_param('web.base.url')
query = [
('publish', '=', True),
]
couriers = request.env['rajaongkir.kurir'].search(query)
data = []
for courier in couriers:
data.append({
'id': courier.delivery_carrier_id.id,
'delivery_carrier_id': courier.delivery_carrier_id.id,
'name': courier.name,
'image': base_url + 'api/image/rajaongkir.kurir/image/'+str(courier.id)
})
return self.response(data)
@http.route(prefix + 'def_cargo', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
def get_location_def_cargo(self, **kw):
city_name = str(kw.get('city_name'))
cargo_city = request.env['def.cargo.city'].search([('name', 'ilike', f'%{city_name}%')])
cargo_district = request.env['def.cargo.district'].search([('city_id', '=', cargo_city.id)], limit=1)
is_coverage = True
if not cargo_district.coverage == 'Available':
is_coverage = False
data = {
'kota': cargo_city.name,
'coverage': cargo_district.coverage,
'rate': cargo_district.rate,
'next_kg': cargo_district.next_kg,
'sla': cargo_district.sla,
'is_coverage': is_coverage
}
return self.response(data)
|