+ CDEK API calculator/tarifflist endpoint

This commit is contained in:
Phil Zhitnikov 2024-01-03 16:10:23 +04:00
parent 5fc202fdc2
commit 65892e03e4
2 changed files with 12 additions and 0 deletions

View File

@ -83,6 +83,7 @@ class CDEKClient:
AUTH_ENDPOINT = 'oauth/token'
ORDER_INFO_ENDPOINT = 'orders'
CALCULATOR_TARIFF_ENDPOINT = 'calculator/tariff'
CALCULATOR_TARIFF_LIST_ENDPOINT = 'calculator/tarifflist'
BARCODE_ENDPOINT = 'print/barcodes'
MAX_RETRIES = 2
@ -141,6 +142,9 @@ class CDEKClient:
def calculate_tariff(self, data):
return self.request('POST', self.CALCULATOR_TARIFF_ENDPOINT, json=data)
def calculate_tarifflist(self, data):
return self.request('POST', self.CALCULATOR_TARIFF_LIST_ENDPOINT, json=data)
def generate_barcode(self, cdek_number, format="A6") -> Optional[str]:
request_data = {
"orders": [{"cdek_number": cdek_number}],

View File

@ -371,6 +371,14 @@ class CDEKAPI(viewsets.GenericViewSet):
r = self.client.calculate_tariff(data)
return Response(r.json())
@action(url_path='calculator/tarifflist', detail=False, methods=['post'])
def calculate_tarifflist(self, request, *args, **kwargs):
data = request.data
if not data:
raise CRMException('json data is required')
r = self.client.calculate_tarifflist(data)
return Response(r.json())
class PoizonAPI(viewsets.GenericViewSet):
client = PoizonClient(settings.POIZON_TOKEN)