from .. import controller from odoo import http from odoo.http import request class Courier(controller.Controller): prefix = '/api/v1/' PREFIX_PARTNER = prefix + 'partner//' @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)