1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/website_delivery_sendcloud/models/sendcloud_locations_request.py
2024-12-10 09:04:09 +07:00

29 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.delivery_sendcloud.models.sendcloud_service import SendCloud
LOCATION_URL = "https://servicepoints.sendcloud.sc/api/v2/"
class SendcloudLocationsRequest(SendCloud):
def get_close_locations(self, partner_address, distance, carrier):
if carrier == 'sendcloud':
carrier = ''
params = {"country": partner_address.country_code,
"address": f'{partner_address.street},{partner_address.zip} {partner_address.city}',
"radius": distance,
"carrier": carrier}
request = self._send_request('service-points', params=params, route=LOCATION_URL)
location = set()
return_data = []
for pick_up_location in request:
if pick_up_location["street"] not in location:
# change distance in km to proprely match the canvas
pick_up_location["distance"] = pick_up_location["distance"] / 1000
return_data.append(pick_up_location)
location.add(pick_up_location["street"])
return return_data