예제 #1
0
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
예제 #2
0
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
예제 #3
0
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)
예제 #4
0
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
예제 #5
0
파일: cancel.py 프로젝트: iliaaz/purplship
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)
예제 #6
0
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)
예제 #7
0
파일: cancel.py 프로젝트: iliaaz/purplship
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)
예제 #8
0
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)
예제 #9
0
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
예제 #10
0
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)
예제 #11
0
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',
        )
    ],
예제 #12
0
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"},
예제 #13
0
                  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",