Skip to content

Commit 992598f

Browse files
authored
Merge pull request #253 from EasyPost/payloads
feat: adds retrieve event payload and payloads functions
2 parents 152c000 + dc9be65 commit 992598f

File tree

9 files changed

+792
-3
lines changed

9 files changed

+792
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Next Release
44

55
- Adds `all` function to `Pickup` to retrieve all pickups
6+
- Adds `retrieve_payload` and `retrieve_all_payloads` functions to `Event`
67

78
## v7.8.0 (2023-01-11)
89

easypost/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from easypost.insurance import Insurance
1515
from easypost.order import Order
1616
from easypost.parcel import Parcel
17+
from easypost.payload import Payload
1718
from easypost.pickup import Pickup
1819
from easypost.pickup_rate import PickupRate
1920
from easypost.postage_label import PostageLabel

easypost/easypost_object.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111

1212
EASYPOST_OBJECT_ID_PREFIX_TO_CLASS_NAME_MAP = {
13-
"ak": "ApiKey",
1413
"adr": "Address",
14+
"ak": "ApiKey",
1515
"batch": "Batch",
1616
"brd": "Brand",
1717
"ca": "CarrierAccount",
@@ -23,6 +23,7 @@
2323
"hook": "Webhook",
2424
"ins": "Insurance",
2525
"order": "Order",
26+
"payload": "Payload",
2627
"pickup": "Pickup",
2728
"pickuprate": "PickupRate",
2829
"pl": "PostageLabel",

easypost/event.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,37 @@
11
import json
2+
from typing import (
3+
List,
4+
Optional,
5+
)
26

37
import easypost
48
from easypost.easypost_object import convert_to_easypost_object
9+
from easypost.requestor import (
10+
RequestMethod,
11+
Requestor,
12+
)
513
from easypost.resource import AllResource
614

715

816
class Event(AllResource):
917
@classmethod
1018
def receive(cls, values: str) -> "Event":
1119
return convert_to_easypost_object(response=json.loads(s=values), api_key=easypost.api_key)
20+
21+
@classmethod
22+
def retrieve_all_payloads(cls, event_id: str, api_key: Optional[str] = None, **params) -> List["easypost.Payload"]:
23+
"""Retrieve a list of Payloads for an Event."""
24+
requestor = Requestor(local_api_key=api_key)
25+
url = f"{cls.class_url()}/{event_id}/payloads"
26+
response, api_key = requestor.request(method=RequestMethod.GET, url=url, params=params)
27+
return convert_to_easypost_object(response=response, api_key=api_key)
28+
29+
@classmethod
30+
def retrieve_payload(
31+
cls, event_id: str, payload_id: str, api_key: Optional[str] = None, **params
32+
) -> "easypost.Payload":
33+
"""Retrieve a Payload of an Event."""
34+
requestor = Requestor(local_api_key=api_key)
35+
url = f"{cls.class_url()}/{event_id}/payloads/{payload_id}"
36+
response, api_key = requestor.request(method=RequestMethod.GET, url=url, params=params)
37+
return convert_to_easypost_object(response=response, api_key=api_key)

easypost/payload.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class Payload:
2+
pass

0 commit comments

Comments
 (0)