4
4
5
5
from lob import api_requestor
6
6
from lob .compat import string_type
7
+ from lob .constants import TIMEOUT_DEFAULT
7
8
8
9
9
10
def lob_format (resp ):
@@ -86,16 +87,16 @@ def __str__(self):
86
87
87
88
class APIResource (LobObject ):
88
89
@classmethod
89
- def retrieve (cls , id , ** params ):
90
+ def retrieve (cls , id , timeout = TIMEOUT_DEFAULT , ** params ):
90
91
requestor = api_requestor .APIRequestor ()
91
- response = requestor .request ('get' , '%s/%s' % (cls .endpoint , id ), params )
92
+ response = requestor .request ('get' , '%s/%s' % (cls .endpoint , id ), params , timeout = timeout )
92
93
return lob_format (response )
93
94
94
95
95
96
# API Operations
96
97
class ListableAPIResource (APIResource ):
97
98
@classmethod
98
- def list (cls , ** params ):
99
+ def list (cls , timeout = TIMEOUT_DEFAULT , ** params ):
99
100
for key , value in params .copy ().items ():
100
101
if isinstance (params [key ], dict ):
101
102
for subKey in value :
@@ -105,31 +106,31 @@ def list(cls, **params):
105
106
params [str (key ) + '[]' ] = params [key ]
106
107
del params [key ]
107
108
requestor = api_requestor .APIRequestor ()
108
- response = requestor .request ('get' , cls .endpoint , params )
109
+ response = requestor .request ('get' , cls .endpoint , params , timeout = timeout )
109
110
return lob_format (response )
110
111
111
112
112
113
class DeleteableAPIResource (APIResource ):
113
114
@classmethod
114
- def delete (cls , id ):
115
+ def delete (cls , id , timeout = TIMEOUT_DEFAULT ):
115
116
requestor = api_requestor .APIRequestor ()
116
- response = requestor .request ('delete' , '%s/%s' % (cls .endpoint , id ))
117
+ response = requestor .request ('delete' , '%s/%s' % (cls .endpoint , id ), timeout = timeout )
117
118
return lob_format (response )
118
119
119
120
120
121
class CreateableAPIResource (APIResource ):
121
122
@classmethod
122
- def create (cls , ** params ):
123
+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
123
124
requestor = api_requestor .APIRequestor ()
124
- response = requestor .request ('post' , cls .endpoint , params )
125
+ response = requestor .request ('post' , cls .endpoint , params , timeout = timeout )
125
126
return lob_format (response )
126
127
127
128
128
129
class VerifiableAPIResource (APIResource ):
129
130
@classmethod
130
- def verify (cls , id , ** params ):
131
+ def verify (cls , id , timeout = TIMEOUT_DEFAULT , ** params ):
131
132
requestor = api_requestor .APIRequestor ()
132
- response = requestor .request ('post' , '%s/%s/verify' % (cls .endpoint , id ), params )
133
+ response = requestor .request ('post' , '%s/%s/verify' % (cls .endpoint , id ), params , timeout = timeout )
133
134
return lob_format (response )
134
135
135
136
@@ -150,23 +151,23 @@ class Card(ListableAPIResource, DeleteableAPIResource, CreateableAPIResource):
150
151
endpoint = '/cards'
151
152
152
153
@classmethod
153
- def update (cls , card_id , ** params ):
154
+ def update (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
154
155
requestor = api_requestor .APIRequestor ()
155
- response = requestor .request ('post' , '%s/%s' % (cls .endpoint , card_id ), params )
156
+ response = requestor .request ('post' , '%s/%s' % (cls .endpoint , card_id ), params , timeout = timeout )
156
157
return lob_format (response )
157
158
158
159
159
160
class CardOrder (ListableAPIResource , CreateableAPIResource ):
160
161
endpoint = '/cards/%s/orders'
161
162
162
163
@classmethod
163
- def create (cls , card_id , ** params ):
164
+ def create (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
164
165
requestor = api_requestor .APIRequestor ()
165
- response = requestor .request ('post' , cls .endpoint % card_id , params )
166
+ response = requestor .request ('post' , cls .endpoint % card_id , params , timeout = timeout )
166
167
return lob_format (response )
167
168
168
169
@classmethod
169
- def list (cls , card_id , ** params ):
170
+ def list (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
170
171
for key , value in params .copy ().items ():
171
172
if isinstance (params [key ], dict ):
172
173
for subKey in value :
@@ -176,67 +177,67 @@ def list(cls, card_id, **params):
176
177
params [str (key ) + '[]' ] = params [key ]
177
178
del params [key ]
178
179
requestor = api_requestor .APIRequestor ()
179
- response = requestor .request ('get' , cls .endpoint % card_id , params )
180
+ response = requestor .request ('get' , cls .endpoint % card_id , params , timeout = timeout )
180
181
return lob_format (response )
181
182
182
183
183
184
class Check (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
184
185
endpoint = '/checks'
185
186
186
187
@classmethod
187
- def create (cls , ** params ):
188
+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
188
189
if isinstance (params , dict ):
189
190
if 'to_address' in params :
190
191
params ['to' ] = params ['to_address' ]
191
192
params .pop ('to_address' )
192
193
if 'from_address' in params :
193
194
params ['from' ] = params ['from_address' ]
194
195
params .pop ('from_address' )
195
- return super (Check , cls ).create (** params )
196
+ return super (Check , cls ).create (timeout = timeout , ** params )
196
197
197
198
198
199
class Letter (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
199
200
endpoint = '/letters'
200
201
201
202
@classmethod
202
- def create (cls , ** params ):
203
+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
203
204
if isinstance (params , dict ):
204
205
if 'from_address' in params :
205
206
params ['from' ] = params ['from_address' ]
206
207
params .pop ('from_address' )
207
208
if 'to_address' in params :
208
209
params ['to' ] = params ['to_address' ]
209
210
params .pop ('to_address' )
210
- return super (Letter , cls ).create (** params )
211
+ return super (Letter , cls ).create (timeout = timeout , ** params )
211
212
212
213
213
214
class Postcard (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
214
215
endpoint = '/postcards'
215
216
216
217
@classmethod
217
- def create (cls , ** params ):
218
+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
218
219
if isinstance (params , dict ):
219
220
if 'from_address' in params :
220
221
params ['from' ] = params ['from_address' ]
221
222
params .pop ('from_address' )
222
223
if 'to_address' in params :
223
224
params ['to' ] = params ['to_address' ]
224
225
params .pop ('to_address' )
225
- return super (Postcard , cls ).create (** params )
226
+ return super (Postcard , cls ).create (timeout = timeout , ** params )
226
227
227
228
class SelfMailer (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
228
229
endpoint = '/self_mailers'
229
230
230
231
@classmethod
231
- def create (cls , ** params ):
232
+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
232
233
if isinstance (params , dict ):
233
234
if 'from_address' in params :
234
235
params ['from' ] = params ['from_address' ]
235
236
params .pop ('from_address' )
236
237
if 'to_address' in params :
237
238
params ['to' ] = params ['to_address' ]
238
239
params .pop ('to_address' )
239
- return super (SelfMailer , cls ).create (** params )
240
+ return super (SelfMailer , cls ).create (timeout = timeout , ** params )
240
241
241
242
242
243
class USAutocompletion (CreateableAPIResource ):
0 commit comments