+ CDEK api
This commit is contained in:
parent
fcfc33a435
commit
5889c10a15
37
cdek/api.py
37
cdek/api.py
|
|
@ -27,10 +27,10 @@ class CDEKClient:
|
||||||
def request(self, method, url, *args, **kwargs):
|
def request(self, method, url, *args, **kwargs):
|
||||||
joined_url = urljoin(self.api_url, url)
|
joined_url = urljoin(self.api_url, url)
|
||||||
request = Request(method, joined_url, *args, **kwargs)
|
request = Request(method, joined_url, *args, **kwargs)
|
||||||
prepared = self.session.prepare_request(request)
|
|
||||||
|
|
||||||
retries = 0
|
retries = 0
|
||||||
while retries < self.MAX_RETRIES:
|
while retries < self.MAX_RETRIES:
|
||||||
|
prepared = self.session.prepare_request(request)
|
||||||
r = self.session.send(prepared)
|
r = self.session.send(prepared)
|
||||||
|
|
||||||
# TODO: handle/log errors
|
# TODO: handle/log errors
|
||||||
|
|
@ -51,39 +51,18 @@ class CDEKClient:
|
||||||
token = data['access_token']
|
token = data['access_token']
|
||||||
self.session.headers.update({'Authorization': f'Bearer {token}'})
|
self.session.headers.update({'Authorization': f'Bearer {token}'})
|
||||||
|
|
||||||
# FIXME: not working?
|
def get_order_info(self, im_number):
|
||||||
def get_order_info(self, cdek_number):
|
|
||||||
params = {
|
params = {
|
||||||
'cdek_number': str(cdek_number)
|
'im_number': str(im_number)
|
||||||
}
|
}
|
||||||
return self.request('GET', self.ORDER_INFO_ENDPOINT, params=params)
|
return self.request('GET', self.ORDER_INFO_ENDPOINT, params=params)
|
||||||
|
|
||||||
def calculate_tariff(self, order_data):
|
def create_order(self, order_data):
|
||||||
return self.request('POST', self.CALCULATOR_TARIFF_ENDPOINT, json=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 = CDEKClient(settings.CDEK_CLIENT_ID, settings.CDEK_CLIENT_SECRET)
|
||||||
client.authorize()
|
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)
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user