Skip to content

Commit 0c86190

Browse files
authored
Merge pull request #139 from purplship/update-dhl-universal-response-mapper
[patch] Update dhl universal response mapper
2 parents d1ecca0 + f82a589 commit 0c86190

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

extensions/dhl_universal/purplship/providers/dhl_universal/tracking.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from typing import List, Tuple
22
from dhl_universal_lib.tracking import (
33
TrackingRequest as DHLTrackingRequest,
4-
Shipment,
54
)
65
from purplship.core.utils import (
76
Serializable,
@@ -21,35 +20,35 @@
2120
def parse_tracking_response(response: List[dict], settings: Settings) -> Tuple[List[TrackingDetails], List[Message]]:
2221
errors = [e for e in response if 'shipments' not in e]
2322
details = [
24-
_extract_detail(Shipment(**d['shipments'][0]), settings)
23+
_extract_detail(d['shipments'][0], settings)
2524
for d in response if 'shipments' in d
2625
]
2726

2827
return details, parse_error_response(errors, settings)
2928

3029

31-
def _extract_detail(detail: Shipment, settings: Settings) -> TrackingDetails:
30+
def _extract_detail(detail: dict, settings: Settings) -> TrackingDetails:
3231
return TrackingDetails(
3332
carrier_name=settings.carrier_name,
3433
carrier_id=settings.carrier_id,
3534

36-
tracking_number=str(detail.id),
35+
tracking_number=str(detail.get('id')),
3736
events=[
3837
TrackingEvent(
39-
date=DF.fdate(event.timestamp, '%Y-%m-%dT%H:%M:%S'),
40-
description=event.description,
38+
date=DF.fdate(event.get('timestamp'), '%Y-%m-%dT%H:%M:%S'),
39+
description=event.get('description'),
4140
location=(
42-
event.location.address.addressLocality
43-
if event.location is not None and event.location.address is not None
41+
event['location']['address'].get('addressLocality')
42+
if event.get('location') is not None and event.get('location').get('address') is not None
4443
else None
4544
),
46-
code=event.statusCode,
47-
time=DF.ftime(event.timestamp, '%Y-%m-%dT%H:%M:%S'),
48-
) for event in detail.events
45+
code=event.get('statusCode'),
46+
time=DF.ftime(event.get('timestamp'), '%Y-%m-%dT%H:%M:%S'),
47+
) for event in detail.get('events') or []
4948
],
5049
delivered=(
51-
detail.status.status.lower() == "delivered"
52-
if all([detail.status, detail.status.status]) else
50+
detail['status']['status'].lower() == "delivered"
51+
if all([detail['status'], detail['status']['status']]) else
5352
False
5453
)
5554
)

extensions/dhl_universal/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "purplship.dhl_universal"
3-
version = "2021.3.1"
3+
version = "2021.6"
44
homepage="https://sdk.purplship.com"
55
repository="https://github.com/Purplship/purplship"
66
description = "Purplship - DHL Universal Tracking Extension"

extensions/purolator/purplship/providers/purolator/rate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def _extract_rate(estimate_node: Element, settings: Settings) -> RateDetails:
9292
duties_and_taxes=NF.decimal(sum(c.amount for c in duties_and_taxes)),
9393
extra_charges=(duties_and_taxes + surcharges + option_charges),
9494
meta=dict(
95-
service_name=(service.name or quote.service_name)
95+
service_name=service.name_or_key
9696
)
9797
)
9898

0 commit comments

Comments
 (0)