Skip to content

Commit ee755c7

Browse files
authored
[task/gh-44] for confirmations: added handling of missing fields and … (#63)
* [task/gh-44] for confirmations: added handling of missing fields and logging * [task-gh-44] implemented more fields checks to address PR comments
1 parent f94c2de commit ee755c7

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

track/gbf.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,12 @@ def get_order_confirmations(order_numbers):
222222
if "ShippingConfirmations" in confirmations:
223223
for shipping_confirmation in confirmations['ShippingConfirmations']:
224224
tracking_info[shipping_confirmation['OrderNumber']] = {
225-
'date_kit_shipped': shipping_confirmation['ShipDate'],
226-
'kit_tracking_n': shipping_confirmation['Tracking'],
225+
'date_kit_shipped': shipping_confirmation['ShipDate'] if 'ShipDate' in shipping_confirmation else None,
226+
'kit_tracking_n': shipping_confirmation['Tracking'] if 'Tracking' in shipping_confirmation else None,
227227
#filter for items with return tracking numbers and returns tracking numbers
228-
'return_tracking_n': [return_track for item in shipping_confirmation['Items'] if 'ReturnTracking' in item for return_track in item['ReturnTracking']],
228+
'return_tracking_n': [return_track if 'Items' in shipping_confirmation else None for item in shipping_confirmation['Items'] if 'ReturnTracking' in item for return_track in item['ReturnTracking']],
229229
#filter for items with return tracking numbers and returns tracking numbers
230-
'tube_serial_n': [tube_serial for item in shipping_confirmation['Items'] if 'TubeSerial' in item for tube_serial in item['TubeSerial']]
230+
'tube_serial_n': [tube_serial if 'Items' in shipping_confirmation else None for item in shipping_confirmation['Items'] if 'TubeSerial' in item for tube_serial in item['TubeSerial']]
231231
}
232232
return tracking_info
233233

track/orders.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ def _update_orders_with_shipping_info(tracking_info):
100100
continue
101101

102102
# if order has not shipped yet, we don't need to continue
103-
if not tracking_info[order.order_number]['date_kit_shipped']:
103+
if not tracking_info[order.order_number]['date_kit_shipped']:
104+
logger.warning(f'Order {order.order_number} has no shipped date.')
104105
continue
105106

106107
order.ship_date = tracking_info[order.order_number]['date_kit_shipped']
@@ -113,10 +114,16 @@ def _update_orders_with_shipping_info(tracking_info):
113114

114115
if tracking_info[order.order_number]['kit_tracking_n']:
115116
order.tracking_nrs = tracking_info[order.order_number]['kit_tracking_n']
117+
else:
118+
logger.warning(f'Order {order.order_number} has no tracking numbers.')
116119
if tracking_info[order.order_number]['return_tracking_n']:
117120
order.return_tracking_nrs = tracking_info[order.order_number]['return_tracking_n']
121+
else:
122+
logger.warning(f'Order {order.order_number} has no return tracking numbers.')
118123
if tracking_info[order.order_number]['tube_serial_n']:
119124
order.tube_serials = tracking_info[order.order_number]['tube_serial_n']
125+
else:
126+
logger.warning(f'Order {order.order_number} has no tube serial numbers.')
120127
order.save()
121128

122129
return shipped_orders

0 commit comments

Comments
 (0)