Skip to content

Commit

Permalink
feat: Add missing trade document upload feature
Browse files Browse the repository at this point in the history
  • Loading branch information
danh91 committed Jun 19, 2024
1 parent f13932d commit 4a390a2
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 22 deletions.
46 changes: 25 additions & 21 deletions modules/connectors/mydhl/karrio/mappers/mydhl/mapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,74 +11,78 @@
class Mapper(mapper.Mapper):
settings: provider_settings.Settings

def create_rate_request(
self, payload: models.RateRequest
) -> lib.Serializable:
def create_rate_request(self, payload: models.RateRequest) -> lib.Serializable:
return provider.rate_request(payload, self.settings)

def create_tracking_request(
self, payload: models.TrackingRequest
) -> lib.Serializable:
return provider.tracking_request(payload, self.settings)

def create_shipment_request(
self, payload: models.ShipmentRequest
) -> lib.Serializable:
return provider.shipment_request(payload, self.settings)

def create_pickup_request(
self, payload: models.PickupRequest
) -> lib.Serializable:

def create_pickup_request(self, payload: models.PickupRequest) -> lib.Serializable:
return provider.pickup_request(payload, self.settings)

def create_pickup_update_request(
self, payload: models.PickupUpdateRequest
) -> lib.Serializable:
return provider.pickup_update_request(payload, self.settings)

def create_cancel_pickup_request(
self, payload: models.PickupCancelRequest
) -> lib.Serializable:
return provider.pickup_cancel_request(payload, self.settings)

def create_cancel_shipment_request(
self, payload: models.ShipmentCancelRequest
) -> lib.Serializable[str]:
return provider.shipment_cancel_request(payload, self.settings)



def create_document_upload_request(
self, payload: models.DocumentUploadRequest
) -> lib.Serializable[str]:
return provider.document_upload_request(payload, self.settings)

def parse_cancel_pickup_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.ConfirmationDetails, typing.List[models.Message]]:
return provider.parse_pickup_cancel_response(response, self.settings)

def parse_cancel_shipment_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.ConfirmationDetails, typing.List[models.Message]]:
return provider.parse_shipment_cancel_response(response, self.settings)

def parse_pickup_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.PickupDetails, typing.List[models.Message]]:
return provider.parse_pickup_response(response, self.settings)

def parse_pickup_update_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.PickupDetails, typing.List[models.Message]]:
return provider.parse_pickup_update_response(response, self.settings)

def parse_rate_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[typing.List[models.RateDetails], typing.List[models.Message]]:
return provider.parse_rate_response(response, self.settings)

def parse_shipment_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.ShipmentDetails, typing.List[models.Message]]:
return provider.parse_shipment_response(response, self.settings)

def parse_tracking_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[typing.List[models.TrackingDetails], typing.List[models.Message]]:
return provider.parse_tracking_response(response, self.settings)


def parse_document_upload_response(
self, response: lib.Deserializable[str]
) -> typing.Tuple[models.DocumentUploadDetails, typing.List[models.Message]]:
return provider.parse_document_upload_response(response, self.settings)
16 changes: 16 additions & 0 deletions modules/connectors/mydhl/karrio/mappers/mydhl/proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,19 @@ def cancel_pickup(self, request: lib.Serializable) -> lib.Deserializable[str]:
)

return lib.Deserializable(response, lib.to_dict)

def upload_document(self, request: lib.Serializable) -> lib.Deserializable[str]:
tracking_number = None
response = lib.request(
url=f"{self.settings.server_url}/shipments/{tracking_number}/upload-image",
data=lib.to_json(request.serialize()),
trace=self.trace_as("json"),
method="PATCH",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {self.settings.authorization}",
"X-API-KEY": self.settings.api_key,
},
)

return lib.Deserializable(response, lib.to_dict)
5 changes: 4 additions & 1 deletion modules/connectors/mydhl/karrio/providers/mydhl/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

from karrio.providers.mydhl.utils import Settings
from karrio.providers.mydhl.rate import parse_rate_response, rate_request
from karrio.providers.mydhl.shipment import (
Expand All @@ -19,3 +18,7 @@
parse_tracking_response,
tracking_request,
)
from karrio.providers.mydhl.document import (
parse_document_upload_response,
document_upload_request,
)

0 comments on commit 4a390a2

Please sign in to comment.