6
6
)
7
7
8
8
from easypost .constant import (
9
+ _CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH ,
9
10
_CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_WORKFLOWS ,
10
11
_UPS_OAUTH_CARRIER_ACCOUNT_TYPES ,
11
12
MISSING_PARAMETER_ERROR ,
@@ -35,6 +36,8 @@ def create(self, **params) -> CarrierAccount:
35
36
url = self ._select_carrier_account_creation_endpoint (carrier_account_type = carrier_account_type )
36
37
if carrier_account_type in _UPS_OAUTH_CARRIER_ACCOUNT_TYPES :
37
38
wrapped_params = {"ups_oauth_registrations" : params }
39
+ elif carrier_account_type in _CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH :
40
+ wrapped_params = {"carrier_account_oauth_registrations" : params }
38
41
else :
39
42
wrapped_params = {self ._snakecase_name (self ._model_class ): params }
40
43
@@ -56,6 +59,13 @@ def update(self, id: str, **params) -> CarrierAccount:
56
59
57
60
if carrier_account .get ("type" ) in _UPS_OAUTH_CARRIER_ACCOUNT_TYPES :
58
61
class_name = "UpsOauthRegistrations"
62
+ elif carrier_account .get ("type" ) in _CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH :
63
+ response = Requestor (self ._client ).request (
64
+ method = RequestMethod .PATCH ,
65
+ url = f"/carrier_accounts/register_oauth/{ id } " ,
66
+ params = {},
67
+ )
68
+ return convert_to_easypost_object (response = response )
59
69
else :
60
70
class_name = self ._model_class
61
71
@@ -77,5 +87,7 @@ def _select_carrier_account_creation_endpoint(self, carrier_account_type: Option
77
87
return "/carrier_accounts/register"
78
88
elif carrier_account_type in _UPS_OAUTH_CARRIER_ACCOUNT_TYPES :
79
89
return "/ups_oauth_registrations"
90
+ elif carrier_account_type in _CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH :
91
+ return "/carrier_accounts/register_oauth"
80
92
81
93
return "/carrier_accounts"
0 commit comments