Skip to content

Commit

Permalink
Merge pull request #81 from PurplShip/purplship-2020.10.0
Browse files Browse the repository at this point in the history
[release] Purplship SDK edition 2020.10.0
  • Loading branch information
danh91 committed Oct 25, 2020
2 parents 34c6cc5 + c3a2946 commit b2ff33c
Show file tree
Hide file tree
Showing 117 changed files with 3,880 additions and 416 deletions.
87 changes: 82 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,23 @@ ___

#### Fluent API

##### Address

- Validation

```python
import purplship
from purplship.core.models import AddressValidationRequest

carrier = purplship.gateway['carrier'].create(...)

request = purplship.Address.validate(
AddressValidationRequest(...)
)

rates = request.from_(carrier).parse()
```

##### Pickup

- Booking
Expand All @@ -251,7 +268,7 @@ from purplship.core.models import PickupRequest

carrier = purplship.gateway['carrier'].create(...)

request = purplship.Pickup.book(
request = purplship.Pickup.schedule(
PickupRequest(...)
)

Expand All @@ -277,12 +294,12 @@ rates = request.from_(carrier).parse()

```python
import purplship
from purplship.core.models import PickupCancellationRequest
from purplship.core.models import PickupCancelRequest

carrier = purplship.gateway['carrier'].create(...)

request = purplship.Pickup.cancel(
PickupCancellationRequest(...)
PickupCancelRequest(...)
)

rates = request.from_(carrier).parse()
Expand Down Expand Up @@ -322,6 +339,21 @@ request = purplship.Shipment.create(
rates = request.with_(carrier).parse()
```

- Void

```python
import purplship
from purplship.core.models import ShipmentCancelRequest

carrier = purplship.gateway['carrier'].create(...)

request = purplship.Shipment.cancel(
ShipmentCancelRequest(...)
)

rates = request.from_(carrier).parse()
```

##### Tracking

- Fetch
Expand Down Expand Up @@ -353,6 +385,13 @@ rates = request.from_(carrier).parse()
| `password` | `str` | **required**
| `custumer_number` | `str` |

- Canpar

| Name | Type | Description
| --- | --- | --- |
| `user_id` | `str` | **required**
| `password` | `str` | **required**


- DHL Express

Expand Down Expand Up @@ -570,7 +609,7 @@ rates = request.from_(carrier).parse()
| `contact` | [Address](#Address) |


- <a name="PickupCancellationRequest"></a> PickupCancellationRequest
- <a name="PickupCancelRequest"></a> PickupCancelRequest
| Name | Type | Description
| --- | --- | --- |
| `confirmation_number` | `str` |
Expand Down Expand Up @@ -649,6 +688,12 @@ rates = request.from_(carrier).parse()
| `reference` | `str` |


- <a name="ShipmentCancelRequest"></a> ShipmentCancelRequest
| Name | Type | Description
| --- | --- | --- |
| `shipment_identifier` | `str` |


- <a name="ShipmentDetails"></a> ShipmentDetails
| Name | Type | Description
| --- | --- | --- |
Expand Down Expand Up @@ -682,6 +727,7 @@ rates = request.from_(carrier).parse()
| `carrier_id` | `str` |
| `tracking_number` | `str` |
| `events` | List[[TrackingEvent](#TrackingEvent)] |
| `delivered` | `bool` |


- <a name="TrackingEvent"></a> TrackingEvent
Expand All @@ -700,7 +746,7 @@ rates = request.from_(carrier).parse()
| --- | --- | --- |
| `tracking_numbers` | List[str] |
| `language_code` | `str` |
| `level_of_details` | `str` |
| `level_of_details` | `str` |

</details>

Expand Down Expand Up @@ -881,6 +927,23 @@ rates = request.from_(carrier).parse()
| `canadapost_tracked_packet_international` | INT.TP


- <a name="services-canpar"></a> Canpar
Code | Identifier
--- | ---
| `canpar_ground` | 1
| `canpar_usa` | 2
| `canpar_select_letter` | 3
| `canpar_select_pak` | 4
| `canpar_select` | 5
| `canpar_overnight_letter` | C
| `canpar_overnight_pak` | D
| `canpar_overnight` | E
| `canpar_usa_letter` | F
| `canpar_usa_pak` | G
| `canpar_select_usa` | H
| `canpar_international` | I


- <a name="services-dhl_express"></a> DHL Express
Code | Identifier
--- | ---
Expand Down Expand Up @@ -1099,6 +1162,19 @@ rates = request.from_(carrier).parse()
| `canadapost_abandon` | ABAN


- <a name="options-canpar"></a> Canpar
Code | Identifier
--- | ---
| `canpar_cash_on_delivery` | N
| `canpar_dangerous_goods` | dg
| `canpar_extra_care` | xc
| `canpar_ten_am` | A
| `canpar_noon` | B
| `canpar_no_signature_required` | 2
| `canpar_not_no_signature_required` | 0
| `canpar_saturday` | S


- <a name="options-dhl_express"></a> DHL Express
Code | Identifier
--- | ---
Expand Down Expand Up @@ -1449,4 +1525,5 @@ rates = request.from_(carrier).parse()
| `sdl_shipment_indicator` | SDLShipmentIndicator
| `epra_indicator` | EPRAIndicator


</details>
6 changes: 6 additions & 0 deletions cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ def import_pkg(pkg: str):
'options': "OptionCode",
'packagePresets': "PackagePresets"
},
'canpar': {
'label': "Canpar",
'package': import_pkg('purplship.providers.canpar.units'),
'services': "Service",
'options': "Option"
},
'dhl_express': {
'label': "DHL Express",
'package': import_pkg('purplship.providers.dhl_express.units'),
Expand Down
27 changes: 17 additions & 10 deletions extensions/canadapost/purplship/mappers/canadapost/mapper.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
from typing import List, Tuple
from pycanadapost.rating import mailing_scenario
from pycanadapost.pickuprequest import (
PickupRequestDetailsType,
PickupRequestResponseDetailsType,
)
from purplship.core.utils.pipeline import Pipeline
from purplship.core.utils.serializable import Serializable, Deserializable
from purplship.api.mapper import Mapper as BaseMapper
Expand All @@ -18,8 +14,9 @@
PickupRequest,
PickupDetails,
PickupUpdateRequest,
PickupCancellationRequest,
PickupCancelRequest,
ConfirmationDetails,
ShipmentCancelRequest,
)
from purplship.providers.canadapost import (
mailing_scenario_request,
Expand All @@ -33,6 +30,8 @@
update_pickup_request,
parse_pickup_response,
parse_cancel_pickup_response,
parse_void_shipment_response,
void_shipment_request,
)
from purplship.mappers.canadapost.settings import Settings

Expand All @@ -59,19 +58,22 @@ def create_shipment_request(

def create_pickup_request(
self, payload: PickupRequest
) -> Serializable[PickupRequestDetailsType]:
) -> Serializable[Pipeline]:
return create_pickup_request(payload, self.settings)

def create_modify_pickup_request(
def create_pickup_update_request(
self, payload: PickupUpdateRequest
) -> Serializable[PickupRequestResponseDetailsType]:
) -> Serializable[Pipeline]:
return update_pickup_request(payload, self.settings)

def create_cancel_pickup_request(
self, payload: PickupCancellationRequest
self, payload: PickupCancelRequest
) -> Serializable[str]:
return cancel_pickup_request(payload, self.settings)

def create_cancel_shipment_request(self, payload: ShipmentCancelRequest) -> Serializable[str]:
return void_shipment_request(payload, self.settings)

"""Response Parsers"""

def parse_rate_response(
Expand All @@ -94,7 +96,7 @@ def parse_pickup_response(
) -> Tuple[PickupDetails, List[Message]]:
return parse_pickup_response(response.deserialize(), self.settings)

def parse_modify_pickup_response(
def parse_pickup_update_response(
self, response: Deserializable[str]
) -> Tuple[PickupDetails, List[Message]]:
return parse_pickup_response(response.deserialize(), self.settings)
Expand All @@ -103,3 +105,8 @@ def parse_cancel_pickup_response(
self, response: Deserializable[str]
) -> Tuple[ConfirmationDetails, List[Message]]:
return parse_cancel_pickup_response(response.deserialize(), self.settings)

def parse_cancel_shipment_response(
self, response: Deserializable
) -> Tuple[ConfirmationDetails, List[Message]]:
return parse_void_shipment_response(response.deserialize(), self.settings)
Loading

0 comments on commit b2ff33c

Please sign in to comment.