summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/courier.py
blob: bfaa102e02444e0b14a3a3fc0ef73e4805535f6c (plain)
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)