def parse_shipment_cancel_response(response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: errors = parse_error_response(response, settings) success = len(errors) == 0 confirmation: ConfirmationDetails = ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=success, operation="Cancel Shipment", ) if success else None return confirmation, errors
def parse_pickup_cancel_response( response: dict, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: errors = parse_error_response(response, settings) details = (ConfirmationDetails(carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=True, operation="Pickup Cancel") if not any(errors) else None) return details, errors
def parse_pickup_cancel_response( response, settings) -> Tuple[ConfirmationDetails, List[Message]]: successful = True # retrieve success status from `response` cancellation = (ConfirmationDetails( carrier_name=settings.carrier_name, carrier_id=settings.carrier_id, success=successful, operation="Cancel Pickup", ) if successful else None) return cancellation, parse_error_response(response, settings)
def parse_pickup_cancel_response( response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: errors = parse_error_response(response, settings) cancellation = (ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=True, operation="Cancel Pickup", ) if not any(errors) else None) return cancellation, errors
def parse_pickup_cancel_response( response, settings) -> Tuple[ConfirmationDetails, List[Message]]: successful = (len( response.xpath(".//*[local-name() = $name]", name="ConfirmationNumber")) > 0) cancellation = (ConfirmationDetails( carrier_name=settings.carrier_name, carrier_id=settings.carrier_id, success=successful, operation="Cancel Pickup", ) if successful else None) return cancellation, parse_error_response(response, settings)
def parse_shipment_cancel_response( response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: void_response = XP.find("VoidShipmentResponse", response, VoidShipmentResponse, first=True) voided = void_response is not None and void_response.ShipmentVoided cancellation = ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=True, operation="Cancel Shipment", ) if voided else None return cancellation, parse_error_response(response, settings)
def parse_shipment_cancel_response( response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: void_response = XP.build( VoidShipmentResponse, next( iter( response.xpath(".//*[local-name() = $name]", name="VoidShipmentResponse")), None)) voided = void_response is not None and void_response.ShipmentVoided cancellation = ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=True, operation="Cancel Shipment", ) if voided else None return cancellation, parse_error_response(response, settings)
def parse_pickup_cancel_response( response: Element, settings: Settings ) -> Tuple[ConfirmationDetails, List[Message]]: reply = XP.to_object( CancelPickupReply, next( iter( response.xpath(".//*[local-name() = $name]", name="CancelPickupReply") ), None, ), ) cancellation = ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=reply.HighestSeverity == NotificationSeverityType.SUCCESS.value, operation="Cancel Pickup", ) return cancellation, parse_error_response(response, settings)
def parse_shipment_cancel_response( response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: errors: List[Message] = parse_error_response(response, settings) cancel_response = XP.to_object(eVSICancelResponse, response) if cancel_response.Status != "Cancelled": errors.append( Message(carrier_name=settings.carrier_name, carrier_id=settings.carrier_id, message=cancel_response.Reason, code=cancel_response.Status)) details = (ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, operation="Shipment Cancel", success=True, ) if not any(errors) else None) return details, errors
def parse_pickup_cancel_response( response: Element, settings: Settings) -> Tuple[ConfirmationDetails, List[Message]]: status = XP.build( CodeDescriptionType, next( iter( response.xpath(".//*[local-name() = $name]", name="ResponseStatus")), None, ), ) success = status is not None and status.Code == "1" cancellation = (ConfirmationDetails( carrier_id=settings.carrier_id, carrier_name=settings.carrier_name, success=success, operation="Cancel Pickup", ) if success else None) return cancellation, parse_error_response(response, settings)
RETURNED_VALUE = ( ShipmentDetails( carrier_name="canadapost", carrier_id="canadapost", label="==apodifjoefr", tracking_number="123456789012", shipment_identifier="123456789012" ), [], ) RETURNED_SUCCESS_CANCEL_VALUE = ( ConfirmationDetails( carrier_name="canadapost", carrier_id="canadapost", success=True, operation="Cancel Shipment" ), [], ) RETURNED_FAILED_CANCEL_VALUE = ( None, [ Message( carrier_name='canadapost', carrier_id='canadapost', message='Not Found', code='404', ) ],
UPDATE_RETURNED_VALUE = ( PickupDetails( carrier_id="canadapost", carrier_name="canadapost", confirmation_number="27241", pickup_date="2020-10-23", ready_time="14:30", closing_time="17:00", ), [], ) CANCEL_RETURNED_VALUE = ( ConfirmationDetails( carrier_id="canadapost", carrier_name="canadapost", operation="Cancel Pickup", success=True, ), [], ) PICKUP_RESPONSE = { "messages": [], "pickup": { "id": ANY, "carrier_name": "canadapost", "carrier_id": "canadapost", "confirmation_number": "27241", "pickup_date": "2020-10-25", "pickup_charge": {"name": "Pickup fees", "amount": 0.0, "currency": "CAD"},
closing_time="17:00"), [], ) UPDATE_RETURNED_VALUE = ( PickupDetails(carrier_id="canadapost", carrier_name="canadapost", confirmation_number="27241", pickup_date="2020-10-23", ready_time="14:30", closing_time="17:00"), [], ) CANCEL_RETURNED_VALUE = (ConfirmationDetails(carrier_id="canadapost", carrier_name="canadapost", operation="Cancel Pickup", success=True), []) PICKUP_RESPONSE = { "messages": [], "pickup": { "id": ANY, "carrier_name": "canadapost", "carrier_id": "canadapost", "confirmation_number": "27241", "pickup_date": "2020-10-25",