Skip to content

Commit 3eb85f8

Browse files
authored
Merge pull request #85 from PurplShip/purplship-2020.11
Purplship 2020.11
2 parents 0b90870 + 459c08d commit 3eb85f8

File tree

200 files changed

+5009
-4267
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+5009
-4267
lines changed

.coveragerc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# .coveragerc to control coverage.py
22
[run]
33
branch = True
4+
omit =
5+
*/purplship/extensions/boxknight/*
6+
*/purplship/extensions/dicom/*
7+
*/purplship/extensions/usps/*
48

59
[report]
610
include =
7-
*/purplship/carriers/*
811
*/purplship/core/*
9-
*/purplship/package/*
10-
*/purplship/freight/*
12+
*/purplship/extensions/*

.github/workflows/pythonpackage.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ jobs:
2222
- name: Install and Run tests
2323
run: |
2424
source ./script.sh
25-
init &&
25+
create_env &&
26+
mkdir "${ROOT:?}/wheels" &&
27+
wheels="${ROOT:?}/wheels" PIP_FIND_LINKS=file://"${ROOT:?}/wheels" build
28+
pip install -r "${ROOT:?}/requirements.txt" &&
29+
install_submodules &&
2630
typecheck &&
2731
test &&
2832
coverage report -m &&

README.md

Lines changed: 176 additions & 185 deletions
Large diffs are not rendered by default.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from purplship.mappers.boxknight.mapper import Mapper
2+
from purplship.mappers.boxknight.proxy import Proxy
3+
from purplship.mappers.boxknight.settings import Settings
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
from typing import List, Tuple
2+
from purplship.core.utils.serializable import Serializable, Deserializable
3+
from purplship.api.mapper import Mapper as BaseMapper
4+
from purplship.core.models import (
5+
ShipmentCancelRequest,
6+
PickupUpdateRequest,
7+
PickupCancelRequest,
8+
ShipmentRequest,
9+
RateRequest,
10+
11+
ConfirmationDetails,
12+
ShipmentDetails,
13+
PickupRequest,
14+
PickupDetails,
15+
RateDetails,
16+
Message,
17+
)
18+
from purplship.providers.boxknight import (
19+
parse_shipment_cancel_response,
20+
parse_pickup_update_response,
21+
parse_pickup_cancel_response,
22+
parse_shipment_response,
23+
parse_pickup_response,
24+
parse_rate_response,
25+
26+
shipment_cancel_request,
27+
pickup_update_request,
28+
pickup_cancel_request,
29+
shipment_request,
30+
pickup_request,
31+
rate_request,
32+
)
33+
from purplship.mappers.boxknight.settings import Settings
34+
35+
36+
class Mapper(BaseMapper):
37+
settings: Settings
38+
39+
"""Request Mappers"""
40+
41+
def create_rate_request(
42+
self, payload: RateRequest
43+
) -> Serializable:
44+
return rate_request(payload, self.settings)
45+
46+
def create_shipment_request(
47+
self, payload: ShipmentRequest
48+
) -> Serializable:
49+
return shipment_request(payload, self.settings)
50+
51+
def create_pickup_request(
52+
self, payload: PickupRequest
53+
) -> Serializable:
54+
return pickup_request(payload, self.settings)
55+
56+
def create_pickup_update_request(
57+
self, payload: PickupUpdateRequest
58+
) -> Serializable:
59+
return pickup_update_request(payload, self.settings)
60+
61+
def create_cancel_pickup_request(
62+
self, payload: PickupCancelRequest
63+
) -> Serializable:
64+
return pickup_cancel_request(payload, self.settings)
65+
66+
def create_cancel_shipment_request(self, payload: ShipmentCancelRequest) -> Serializable[str]:
67+
return shipment_cancel_request(payload, self.settings)
68+
69+
"""Response Parsers"""
70+
71+
def parse_cancel_pickup_response(
72+
self, response: Deserializable[str]
73+
) -> Tuple[ConfirmationDetails, List[Message]]:
74+
return parse_pickup_cancel_response(response.deserialize(), self.settings)
75+
76+
def parse_cancel_shipment_response(
77+
self, response: Deserializable
78+
) -> Tuple[ConfirmationDetails, List[Message]]:
79+
return parse_shipment_cancel_response(response.deserialize(), self.settings)
80+
81+
def parse_pickup_response(
82+
self, response: Deserializable[str]
83+
) -> Tuple[PickupDetails, List[Message]]:
84+
return parse_pickup_response(response.deserialize(), self.settings)
85+
86+
def parse_pickup_update_response(
87+
self, response: Deserializable[str]
88+
) -> Tuple[PickupDetails, List[Message]]:
89+
return parse_pickup_update_response(response.deserialize(), self.settings)
90+
91+
def parse_rate_response(
92+
self, response: Deserializable[str]
93+
) -> Tuple[List[RateDetails], List[Message]]:
94+
return parse_rate_response(response.deserialize(), self.settings)
95+
96+
def parse_shipment_response(
97+
self, response: Deserializable[str]
98+
) -> Tuple[ShipmentDetails, List[Message]]:
99+
return parse_shipment_response(response.deserialize(), self.settings)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from typing import List
2+
from purplship.core.utils.serializable import Serializable, Deserializable
3+
from purplship.mappers.boxknight.settings import Settings
4+
from purplship.api.proxy import Proxy as BaseProxy
5+
6+
7+
class Proxy(BaseProxy):
8+
settings: Settings
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""Purplship BoxKnight client settings."""
2+
3+
import attr
4+
from purplship.providers.boxknight.utils import Settings as BaseSettings
5+
6+
7+
@attr.s(auto_attribs=True)
8+
class Settings(BaseSettings):
9+
"""BoxKnight connection settings."""
10+
11+
username: str
12+
password: str
13+
id: str = None
14+
test: bool = False
15+
carrier_id: str = "boxknight"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from purplship.providers.boxknight.utils import Settings
2+
from purplship.providers.boxknight.rate import parse_rate_response, rate_request
3+
from purplship.providers.boxknight.shipment import (
4+
parse_shipment_cancel_response,
5+
parse_shipment_response,
6+
shipment_cancel_request,
7+
shipment_request,
8+
)
9+
from purplship.providers.boxknight.pickup import (
10+
parse_pickup_cancel_response,
11+
parse_pickup_update_response,
12+
parse_pickup_response,
13+
pickup_update_request,
14+
pickup_cancel_request,
15+
pickup_request,
16+
)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from purplship.providers.dicom.utils import Settings
2+
3+
4+
def parse_error_response(response: dict, settings: Settings):
5+
return []
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from purplship.providers.boxknight.pickup.create import parse_pickup_response, pickup_request
2+
from purplship.providers.boxknight.pickup.update import parse_pickup_update_response, pickup_update_request
3+
from purplship.providers.boxknight.pickup.cancel import parse_pickup_cancel_response, pickup_cancel_request

0 commit comments

Comments
 (0)