@@ -167,6 +167,7 @@ def _get_children(
167167@assert_no_unassigned
168168def build_shipment_request (shipmentId : int , token : str ):
169169 shipment = _get_shipment_tree (shipmentId )
170+ proposal_reference = f"{ shipment .proposalCode } { shipment .proposalNumber :06} "
170171
171172 packages : list [dict ] = []
172173 for tlc in shipment .children :
@@ -192,16 +193,28 @@ def build_shipment_request(shipmentId: int, token: str):
192193
193194 # Dewar cases do NOT include the dewar, this merely adds them to the outermost package
194195 if tlc .type == "dewar" :
196+ dewar_response = ExternalRequest .request (
197+ token = token ,
198+ url = f"/proposals/{ proposal_reference } /dewar-registry/{ tlc .code } " ,
199+ )
200+
201+ if dewar_response .status_code != 200 :
202+ app_logger .error (f"Error while getting dewar { tlc .code } from upstream: { dewar_response .text } " )
203+ raise HTTPException (
204+ status_code = status .HTTP_424_FAILED_DEPENDENCY ,
205+ detail = "Invalid facility code provided" ,
206+ )
207+
208+ serial_number = dewar_response .json ()["manufacturerSerialNumber" ]
209+
195210 line_items .append (
196- {
197- "shippable_item_type" : "CRYOGENIC_DRY_SHIPPER" ,
198- "quantity" : 1 ,
199- }
211+ {"shippable_item_type" : "CRYOGENIC_DRY_SHIPPER" , "quantity" : 1 , "serial_number" : serial_number }
200212 )
201213
202214 if tlc .type in TYPE_TO_SHIPPING_SERVICE_TYPE :
203215 packages .append (
204216 {
217+ "container_name" : tlc .name ,
205218 "line_items" : line_items ,
206219 "external_id" : tlc .externalId ,
207220 "shippable_item_type" : TYPE_TO_SHIPPING_SERVICE_TYPE [tlc .type ],
@@ -237,7 +250,8 @@ def build_shipment_request(shipmentId: int, token: str):
237250
238251 built_request_body = {
239252 # TODO: remove padding once shipping service removes regex check
240- "proposal" : f"{ shipment .proposalCode } { shipment .proposalNumber :06} " ,
253+ "session_number" : shipment .visitNumber ,
254+ "proposal" : proposal_reference ,
241255 "external_id" : shipment .externalId ,
242256 "origin_url" : f"{ Config .frontend_url } /proposals/{ shipment .proposalCode } { shipment .proposalNumber } /sessions/"
243257 + f"{ shipment .visitNumber } /shipments/{ shipment .id } " ,
0 commit comments