dub 0.26.12__py3-none-any.whl → 0.27.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. dub/_version.py +3 -3
  2. dub/analytics.py +53 -78
  3. dub/basesdk.py +4 -4
  4. dub/commissions.py +105 -156
  5. dub/customers.py +261 -390
  6. dub/domains.py +309 -472
  7. dub/embed_tokens.py +53 -80
  8. dub/events.py +53 -78
  9. dub/folders.py +205 -316
  10. dub/links.py +511 -770
  11. dub/models/errors/__init__.py +9 -0
  12. dub/models/errors/badrequest.py +12 -6
  13. dub/models/errors/conflict.py +12 -6
  14. dub/models/errors/duberror.py +26 -0
  15. dub/models/errors/forbidden.py +12 -6
  16. dub/models/errors/internalservererror.py +12 -6
  17. dub/models/errors/inviteexpired.py +12 -6
  18. dub/models/errors/no_response_error.py +13 -0
  19. dub/models/errors/notfound.py +12 -6
  20. dub/models/errors/ratelimitexceeded.py +12 -6
  21. dub/models/errors/responsevalidationerror.py +25 -0
  22. dub/models/errors/sdkerror.py +30 -14
  23. dub/models/errors/unauthorized.py +12 -6
  24. dub/models/errors/unprocessableentity.py +12 -6
  25. dub/models/operations/createcustomer.py +3 -0
  26. dub/models/operations/getcustomer.py +3 -0
  27. dub/models/operations/getcustomers.py +3 -0
  28. dub/models/operations/tracklead.py +2 -2
  29. dub/models/operations/tracksale.py +2 -2
  30. dub/models/operations/updatecustomer.py +3 -0
  31. dub/partners.py +255 -384
  32. dub/qr_codes.py +49 -74
  33. dub/tags.py +205 -308
  34. dub/track.py +105 -156
  35. dub/utils/serializers.py +3 -2
  36. dub/utils/unmarshal_json_response.py +24 -0
  37. dub/workspaces.py +105 -156
  38. {dub-0.26.12.dist-info → dub-0.27.1.dist-info}/METADATA +50 -56
  39. {dub-0.26.12.dist-info → dub-0.27.1.dist-info}/RECORD +41 -37
  40. {dub-0.26.12.dist-info → dub-0.27.1.dist-info}/LICENSE +0 -0
  41. {dub-0.26.12.dist-info → dub-0.27.1.dist-info}/WHEEL +0 -0
dub/embed_tokens.py CHANGED
@@ -5,6 +5,7 @@ from dub import utils
5
5
  from dub._hooks import HookContext
6
6
  from dub.models import errors, operations
7
7
  from dub.types import BaseModel, OptionalNullable, UNSET
8
+ from dub.utils.unmarshal_json_response import unmarshal_json_response
8
9
  from typing import Any, Mapping, Optional, Union, cast
9
10
 
10
11
 
@@ -109,64 +110,50 @@ class EmbedTokens(BaseSDK):
109
110
 
110
111
  response_data: Any = None
111
112
  if utils.match_response(http_res, "201", "application/json"):
112
- return utils.unmarshal_json(
113
- http_res.text,
114
- Optional[operations.CreateReferralsEmbedTokenResponseBody],
113
+ return unmarshal_json_response(
114
+ Optional[operations.CreateReferralsEmbedTokenResponseBody], http_res
115
115
  )
116
116
  if utils.match_response(http_res, "400", "application/json"):
117
- response_data = utils.unmarshal_json(http_res.text, errors.BadRequestData)
118
- raise errors.BadRequest(data=response_data)
117
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
118
+ raise errors.BadRequest(response_data, http_res)
119
119
  if utils.match_response(http_res, "401", "application/json"):
120
- response_data = utils.unmarshal_json(http_res.text, errors.UnauthorizedData)
121
- raise errors.Unauthorized(data=response_data)
120
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
121
+ raise errors.Unauthorized(response_data, http_res)
122
122
  if utils.match_response(http_res, "403", "application/json"):
123
- response_data = utils.unmarshal_json(http_res.text, errors.ForbiddenData)
124
- raise errors.Forbidden(data=response_data)
123
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
124
+ raise errors.Forbidden(response_data, http_res)
125
125
  if utils.match_response(http_res, "404", "application/json"):
126
- response_data = utils.unmarshal_json(http_res.text, errors.NotFoundData)
127
- raise errors.NotFound(data=response_data)
126
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
127
+ raise errors.NotFound(response_data, http_res)
128
128
  if utils.match_response(http_res, "409", "application/json"):
129
- response_data = utils.unmarshal_json(http_res.text, errors.ConflictData)
130
- raise errors.Conflict(data=response_data)
129
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
130
+ raise errors.Conflict(response_data, http_res)
131
131
  if utils.match_response(http_res, "410", "application/json"):
132
- response_data = utils.unmarshal_json(
133
- http_res.text, errors.InviteExpiredData
134
- )
135
- raise errors.InviteExpired(data=response_data)
132
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
133
+ raise errors.InviteExpired(response_data, http_res)
136
134
  if utils.match_response(http_res, "422", "application/json"):
137
- response_data = utils.unmarshal_json(
138
- http_res.text, errors.UnprocessableEntityData
135
+ response_data = unmarshal_json_response(
136
+ errors.UnprocessableEntityData, http_res
139
137
  )
140
- raise errors.UnprocessableEntity(data=response_data)
138
+ raise errors.UnprocessableEntity(response_data, http_res)
141
139
  if utils.match_response(http_res, "429", "application/json"):
142
- response_data = utils.unmarshal_json(
143
- http_res.text, errors.RateLimitExceededData
140
+ response_data = unmarshal_json_response(
141
+ errors.RateLimitExceededData, http_res
144
142
  )
145
- raise errors.RateLimitExceeded(data=response_data)
143
+ raise errors.RateLimitExceeded(response_data, http_res)
146
144
  if utils.match_response(http_res, "500", "application/json"):
147
- response_data = utils.unmarshal_json(
148
- http_res.text, errors.InternalServerErrorData
145
+ response_data = unmarshal_json_response(
146
+ errors.InternalServerErrorData, http_res
149
147
  )
150
- raise errors.InternalServerError(data=response_data)
148
+ raise errors.InternalServerError(response_data, http_res)
151
149
  if utils.match_response(http_res, "4XX", "*"):
152
150
  http_res_text = utils.stream_to_text(http_res)
153
- raise errors.SDKError(
154
- "API error occurred", http_res.status_code, http_res_text, http_res
155
- )
151
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
156
152
  if utils.match_response(http_res, "5XX", "*"):
157
153
  http_res_text = utils.stream_to_text(http_res)
158
- raise errors.SDKError(
159
- "API error occurred", http_res.status_code, http_res_text, http_res
160
- )
154
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
161
155
 
162
- content_type = http_res.headers.get("Content-Type")
163
- http_res_text = utils.stream_to_text(http_res)
164
- raise errors.SDKError(
165
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
166
- http_res.status_code,
167
- http_res_text,
168
- http_res,
169
- )
156
+ raise errors.SDKError("Unexpected response received", http_res)
170
157
 
171
158
  async def referrals_async(
172
159
  self,
@@ -268,61 +255,47 @@ class EmbedTokens(BaseSDK):
268
255
 
269
256
  response_data: Any = None
270
257
  if utils.match_response(http_res, "201", "application/json"):
271
- return utils.unmarshal_json(
272
- http_res.text,
273
- Optional[operations.CreateReferralsEmbedTokenResponseBody],
258
+ return unmarshal_json_response(
259
+ Optional[operations.CreateReferralsEmbedTokenResponseBody], http_res
274
260
  )
275
261
  if utils.match_response(http_res, "400", "application/json"):
276
- response_data = utils.unmarshal_json(http_res.text, errors.BadRequestData)
277
- raise errors.BadRequest(data=response_data)
262
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
263
+ raise errors.BadRequest(response_data, http_res)
278
264
  if utils.match_response(http_res, "401", "application/json"):
279
- response_data = utils.unmarshal_json(http_res.text, errors.UnauthorizedData)
280
- raise errors.Unauthorized(data=response_data)
265
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
266
+ raise errors.Unauthorized(response_data, http_res)
281
267
  if utils.match_response(http_res, "403", "application/json"):
282
- response_data = utils.unmarshal_json(http_res.text, errors.ForbiddenData)
283
- raise errors.Forbidden(data=response_data)
268
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
269
+ raise errors.Forbidden(response_data, http_res)
284
270
  if utils.match_response(http_res, "404", "application/json"):
285
- response_data = utils.unmarshal_json(http_res.text, errors.NotFoundData)
286
- raise errors.NotFound(data=response_data)
271
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
272
+ raise errors.NotFound(response_data, http_res)
287
273
  if utils.match_response(http_res, "409", "application/json"):
288
- response_data = utils.unmarshal_json(http_res.text, errors.ConflictData)
289
- raise errors.Conflict(data=response_data)
274
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
275
+ raise errors.Conflict(response_data, http_res)
290
276
  if utils.match_response(http_res, "410", "application/json"):
291
- response_data = utils.unmarshal_json(
292
- http_res.text, errors.InviteExpiredData
293
- )
294
- raise errors.InviteExpired(data=response_data)
277
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
278
+ raise errors.InviteExpired(response_data, http_res)
295
279
  if utils.match_response(http_res, "422", "application/json"):
296
- response_data = utils.unmarshal_json(
297
- http_res.text, errors.UnprocessableEntityData
280
+ response_data = unmarshal_json_response(
281
+ errors.UnprocessableEntityData, http_res
298
282
  )
299
- raise errors.UnprocessableEntity(data=response_data)
283
+ raise errors.UnprocessableEntity(response_data, http_res)
300
284
  if utils.match_response(http_res, "429", "application/json"):
301
- response_data = utils.unmarshal_json(
302
- http_res.text, errors.RateLimitExceededData
285
+ response_data = unmarshal_json_response(
286
+ errors.RateLimitExceededData, http_res
303
287
  )
304
- raise errors.RateLimitExceeded(data=response_data)
288
+ raise errors.RateLimitExceeded(response_data, http_res)
305
289
  if utils.match_response(http_res, "500", "application/json"):
306
- response_data = utils.unmarshal_json(
307
- http_res.text, errors.InternalServerErrorData
290
+ response_data = unmarshal_json_response(
291
+ errors.InternalServerErrorData, http_res
308
292
  )
309
- raise errors.InternalServerError(data=response_data)
293
+ raise errors.InternalServerError(response_data, http_res)
310
294
  if utils.match_response(http_res, "4XX", "*"):
311
295
  http_res_text = await utils.stream_to_text_async(http_res)
312
- raise errors.SDKError(
313
- "API error occurred", http_res.status_code, http_res_text, http_res
314
- )
296
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
315
297
  if utils.match_response(http_res, "5XX", "*"):
316
298
  http_res_text = await utils.stream_to_text_async(http_res)
317
- raise errors.SDKError(
318
- "API error occurred", http_res.status_code, http_res_text, http_res
319
- )
299
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
320
300
 
321
- content_type = http_res.headers.get("Content-Type")
322
- http_res_text = await utils.stream_to_text_async(http_res)
323
- raise errors.SDKError(
324
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
325
- http_res.status_code,
326
- http_res_text,
327
- http_res,
328
- )
301
+ raise errors.SDKError("Unexpected response received", http_res)
dub/events.py CHANGED
@@ -5,6 +5,7 @@ from dub import utils
5
5
  from dub._hooks import HookContext
6
6
  from dub.models import errors, operations
7
7
  from dub.types import BaseModel, OptionalNullable, UNSET
8
+ from dub.utils.unmarshal_json_response import unmarshal_json_response
8
9
  from typing import Any, List, Mapping, Optional, Union, cast
9
10
 
10
11
 
@@ -95,63 +96,50 @@ class Events(BaseSDK):
95
96
 
96
97
  response_data: Any = None
97
98
  if utils.match_response(http_res, "200", "application/json"):
98
- return utils.unmarshal_json(
99
- http_res.text, Optional[List[operations.ListEventsResponseBody]]
99
+ return unmarshal_json_response(
100
+ Optional[List[operations.ListEventsResponseBody]], http_res
100
101
  )
101
102
  if utils.match_response(http_res, "400", "application/json"):
102
- response_data = utils.unmarshal_json(http_res.text, errors.BadRequestData)
103
- raise errors.BadRequest(data=response_data)
103
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
104
+ raise errors.BadRequest(response_data, http_res)
104
105
  if utils.match_response(http_res, "401", "application/json"):
105
- response_data = utils.unmarshal_json(http_res.text, errors.UnauthorizedData)
106
- raise errors.Unauthorized(data=response_data)
106
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
107
+ raise errors.Unauthorized(response_data, http_res)
107
108
  if utils.match_response(http_res, "403", "application/json"):
108
- response_data = utils.unmarshal_json(http_res.text, errors.ForbiddenData)
109
- raise errors.Forbidden(data=response_data)
109
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
110
+ raise errors.Forbidden(response_data, http_res)
110
111
  if utils.match_response(http_res, "404", "application/json"):
111
- response_data = utils.unmarshal_json(http_res.text, errors.NotFoundData)
112
- raise errors.NotFound(data=response_data)
112
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
113
+ raise errors.NotFound(response_data, http_res)
113
114
  if utils.match_response(http_res, "409", "application/json"):
114
- response_data = utils.unmarshal_json(http_res.text, errors.ConflictData)
115
- raise errors.Conflict(data=response_data)
115
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
116
+ raise errors.Conflict(response_data, http_res)
116
117
  if utils.match_response(http_res, "410", "application/json"):
117
- response_data = utils.unmarshal_json(
118
- http_res.text, errors.InviteExpiredData
119
- )
120
- raise errors.InviteExpired(data=response_data)
118
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
119
+ raise errors.InviteExpired(response_data, http_res)
121
120
  if utils.match_response(http_res, "422", "application/json"):
122
- response_data = utils.unmarshal_json(
123
- http_res.text, errors.UnprocessableEntityData
121
+ response_data = unmarshal_json_response(
122
+ errors.UnprocessableEntityData, http_res
124
123
  )
125
- raise errors.UnprocessableEntity(data=response_data)
124
+ raise errors.UnprocessableEntity(response_data, http_res)
126
125
  if utils.match_response(http_res, "429", "application/json"):
127
- response_data = utils.unmarshal_json(
128
- http_res.text, errors.RateLimitExceededData
126
+ response_data = unmarshal_json_response(
127
+ errors.RateLimitExceededData, http_res
129
128
  )
130
- raise errors.RateLimitExceeded(data=response_data)
129
+ raise errors.RateLimitExceeded(response_data, http_res)
131
130
  if utils.match_response(http_res, "500", "application/json"):
132
- response_data = utils.unmarshal_json(
133
- http_res.text, errors.InternalServerErrorData
131
+ response_data = unmarshal_json_response(
132
+ errors.InternalServerErrorData, http_res
134
133
  )
135
- raise errors.InternalServerError(data=response_data)
134
+ raise errors.InternalServerError(response_data, http_res)
136
135
  if utils.match_response(http_res, "4XX", "*"):
137
136
  http_res_text = utils.stream_to_text(http_res)
138
- raise errors.SDKError(
139
- "API error occurred", http_res.status_code, http_res_text, http_res
140
- )
137
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
141
138
  if utils.match_response(http_res, "5XX", "*"):
142
139
  http_res_text = utils.stream_to_text(http_res)
143
- raise errors.SDKError(
144
- "API error occurred", http_res.status_code, http_res_text, http_res
145
- )
140
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
146
141
 
147
- content_type = http_res.headers.get("Content-Type")
148
- http_res_text = utils.stream_to_text(http_res)
149
- raise errors.SDKError(
150
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
151
- http_res.status_code,
152
- http_res_text,
153
- http_res,
154
- )
142
+ raise errors.SDKError("Unexpected response received", http_res)
155
143
 
156
144
  async def list_async(
157
145
  self,
@@ -239,60 +227,47 @@ class Events(BaseSDK):
239
227
 
240
228
  response_data: Any = None
241
229
  if utils.match_response(http_res, "200", "application/json"):
242
- return utils.unmarshal_json(
243
- http_res.text, Optional[List[operations.ListEventsResponseBody]]
230
+ return unmarshal_json_response(
231
+ Optional[List[operations.ListEventsResponseBody]], http_res
244
232
  )
245
233
  if utils.match_response(http_res, "400", "application/json"):
246
- response_data = utils.unmarshal_json(http_res.text, errors.BadRequestData)
247
- raise errors.BadRequest(data=response_data)
234
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
235
+ raise errors.BadRequest(response_data, http_res)
248
236
  if utils.match_response(http_res, "401", "application/json"):
249
- response_data = utils.unmarshal_json(http_res.text, errors.UnauthorizedData)
250
- raise errors.Unauthorized(data=response_data)
237
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
238
+ raise errors.Unauthorized(response_data, http_res)
251
239
  if utils.match_response(http_res, "403", "application/json"):
252
- response_data = utils.unmarshal_json(http_res.text, errors.ForbiddenData)
253
- raise errors.Forbidden(data=response_data)
240
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
241
+ raise errors.Forbidden(response_data, http_res)
254
242
  if utils.match_response(http_res, "404", "application/json"):
255
- response_data = utils.unmarshal_json(http_res.text, errors.NotFoundData)
256
- raise errors.NotFound(data=response_data)
243
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
244
+ raise errors.NotFound(response_data, http_res)
257
245
  if utils.match_response(http_res, "409", "application/json"):
258
- response_data = utils.unmarshal_json(http_res.text, errors.ConflictData)
259
- raise errors.Conflict(data=response_data)
246
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
247
+ raise errors.Conflict(response_data, http_res)
260
248
  if utils.match_response(http_res, "410", "application/json"):
261
- response_data = utils.unmarshal_json(
262
- http_res.text, errors.InviteExpiredData
263
- )
264
- raise errors.InviteExpired(data=response_data)
249
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
250
+ raise errors.InviteExpired(response_data, http_res)
265
251
  if utils.match_response(http_res, "422", "application/json"):
266
- response_data = utils.unmarshal_json(
267
- http_res.text, errors.UnprocessableEntityData
252
+ response_data = unmarshal_json_response(
253
+ errors.UnprocessableEntityData, http_res
268
254
  )
269
- raise errors.UnprocessableEntity(data=response_data)
255
+ raise errors.UnprocessableEntity(response_data, http_res)
270
256
  if utils.match_response(http_res, "429", "application/json"):
271
- response_data = utils.unmarshal_json(
272
- http_res.text, errors.RateLimitExceededData
257
+ response_data = unmarshal_json_response(
258
+ errors.RateLimitExceededData, http_res
273
259
  )
274
- raise errors.RateLimitExceeded(data=response_data)
260
+ raise errors.RateLimitExceeded(response_data, http_res)
275
261
  if utils.match_response(http_res, "500", "application/json"):
276
- response_data = utils.unmarshal_json(
277
- http_res.text, errors.InternalServerErrorData
262
+ response_data = unmarshal_json_response(
263
+ errors.InternalServerErrorData, http_res
278
264
  )
279
- raise errors.InternalServerError(data=response_data)
265
+ raise errors.InternalServerError(response_data, http_res)
280
266
  if utils.match_response(http_res, "4XX", "*"):
281
267
  http_res_text = await utils.stream_to_text_async(http_res)
282
- raise errors.SDKError(
283
- "API error occurred", http_res.status_code, http_res_text, http_res
284
- )
268
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
285
269
  if utils.match_response(http_res, "5XX", "*"):
286
270
  http_res_text = await utils.stream_to_text_async(http_res)
287
- raise errors.SDKError(
288
- "API error occurred", http_res.status_code, http_res_text, http_res
289
- )
271
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
290
272
 
291
- content_type = http_res.headers.get("Content-Type")
292
- http_res_text = await utils.stream_to_text_async(http_res)
293
- raise errors.SDKError(
294
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
295
- http_res.status_code,
296
- http_res_text,
297
- http_res,
298
- )
273
+ raise errors.SDKError("Unexpected response received", http_res)