Skip to content

Commit 5c46d04

Browse files
committed
feat: add carrier metadata beta endpoint
1 parent 5a0d969 commit 5c46d04

File tree

5 files changed

+1970
-0
lines changed

5 files changed

+1970
-0
lines changed

easypost/beta/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# flake8: noqa
2+
from easypost.beta.carrier_metadata import CarrierMetadata
23
from easypost.beta.rate import Rate
34
from easypost.beta.referral import Referral

easypost/beta/carrier_metadata.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from typing import (
2+
Any,
3+
List,
4+
Optional,
5+
)
6+
7+
from easypost.easypost_object import convert_to_easypost_object
8+
from easypost.requestor import (
9+
RequestMethod,
10+
Requestor,
11+
)
12+
13+
14+
class CarrierMetadata:
15+
@classmethod
16+
def retrieve_carrier_metadata(
17+
cls, api_key: Optional[str] = None, carriers: Optional[List[str]] = None, types: Optional[List[str]] = None
18+
) -> List[dict[str, Any]]:
19+
"""Get carrier metadata for all carriers on the EasyPost platform."""
20+
requestor = Requestor(local_api_key=api_key)
21+
params = {
22+
"carriers": ",".join(carriers) if carriers else None,
23+
"types": ",".join(types) if types else None,
24+
}
25+
response, api_key = requestor.request(method=RequestMethod.GET, url="/metadata", params=params, beta=True)
26+
return convert_to_easypost_object(response=response.get("carriers", []), api_key=api_key)

0 commit comments

Comments
 (0)