+ CDEK api

This commit is contained in:
Phil Zhitnikov 2023-07-05 02:14:55 +04:00
parent 1d615b2735
commit 369dbf31ae

View File

@ -27,10 +27,10 @@ class CDEKClient:
def request(self, method, url, *args, **kwargs):
joined_url = urljoin(self.api_url, url)
request = Request(method, joined_url, *args, **kwargs)
prepared = self.session.prepare_request(request)
retries = 0
while retries < self.MAX_RETRIES:
prepared = self.session.prepare_request(request)
r = self.session.send(prepared)
# TODO: handle/log errors
@ -51,39 +51,18 @@ class CDEKClient:
token = data['access_token']
self.session.headers.update({'Authorization': f'Bearer {token}'})
# FIXME: not working?
def get_order_info(self, cdek_number):
def get_order_info(self, im_number):
params = {
'cdek_number': str(cdek_number)
'im_number': str(im_number)
}
return self.request('GET', self.ORDER_INFO_ENDPOINT, params=params)
def calculate_tariff(self, order_data):
return self.request('POST', self.CALCULATOR_TARIFF_ENDPOINT, json=order_data)
def create_order(self, order_data):
return self.request('POST', self.ORDER_INFO_ENDPOINT, json=order_data)
def calculate_tariff(self, data):
return self.request('POST', self.CALCULATOR_TARIFF_ENDPOINT, json=data)
client = CDEKClient(settings.CDEK_CLIENT_ID, settings.CDEK_CLIENT_SECRET)
client.authorize()
order_data = {
"type": "1",
"currency": "1",
"lang": "rus",
"tariff_code": "137",
"from_location": {
"address": "Санкт-Петербург, Невский пр. 30"
},
"to_location": {
"address": "Тверь, ул 15 лет октября, дом 50, кВ 2"
},
"packages": [
{
"weight": 1200,
"length": 35,
"width": 26,
"height": 14
}
]
}
r = client.calculate_tariff(order_data)
print(r)