paid_ruby 0.1.0

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. checksums.yaml +7 -0
  2. data/lib/environment.rb +9 -0
  3. data/lib/extensions/batch.rb +41 -0
  4. data/lib/gemconfig.rb +13 -0
  5. data/lib/paid_ruby/agents/client.rb +543 -0
  6. data/lib/paid_ruby/contacts/client.rb +437 -0
  7. data/lib/paid_ruby/customers/client.rb +604 -0
  8. data/lib/paid_ruby/orders/client.rb +379 -0
  9. data/lib/paid_ruby/orders/lines/client.rb +99 -0
  10. data/lib/paid_ruby/types/address.rb +91 -0
  11. data/lib/paid_ruby/types/agent.rb +109 -0
  12. data/lib/paid_ruby/types/agent_attribute.rb +74 -0
  13. data/lib/paid_ruby/types/agent_price_point.rb +81 -0
  14. data/lib/paid_ruby/types/agent_price_point_tiers.rb +70 -0
  15. data/lib/paid_ruby/types/agent_update.rb +95 -0
  16. data/lib/paid_ruby/types/api_error.rb +54 -0
  17. data/lib/paid_ruby/types/billing_frequency.rb +11 -0
  18. data/lib/paid_ruby/types/charge_type.rb +12 -0
  19. data/lib/paid_ruby/types/contact.rb +155 -0
  20. data/lib/paid_ruby/types/creation_source.rb +12 -0
  21. data/lib/paid_ruby/types/creation_state.rb +10 -0
  22. data/lib/paid_ruby/types/customer.rb +142 -0
  23. data/lib/paid_ruby/types/customer_update.rb +120 -0
  24. data/lib/paid_ruby/types/error.rb +58 -0
  25. data/lib/paid_ruby/types/order.rb +172 -0
  26. data/lib/paid_ruby/types/order_line.rb +158 -0
  27. data/lib/paid_ruby/types/order_line_attribute.rb +83 -0
  28. data/lib/paid_ruby/types/order_line_attribute_pricing.rb +93 -0
  29. data/lib/paid_ruby/types/order_line_create.rb +77 -0
  30. data/lib/paid_ruby/types/price_point.rb +81 -0
  31. data/lib/paid_ruby/types/pricing.rb +97 -0
  32. data/lib/paid_ruby/types/pricing_model_type.rb +11 -0
  33. data/lib/paid_ruby/types/salutation.rb +14 -0
  34. data/lib/paid_ruby/types/signal.rb +77 -0
  35. data/lib/paid_ruby/types/tax_exempt_status.rb +11 -0
  36. data/lib/paid_ruby/types/tier.rb +70 -0
  37. data/lib/paid_ruby/usage/client.rb +97 -0
  38. data/lib/paid_ruby.rb +83 -0
  39. data/lib/requests.rb +166 -0
  40. data/lib/types_export.rb +28 -0
  41. metadata +163 -0
@@ -0,0 +1,437 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "../types/contact"
4
+ require "json"
5
+ require_relative "../types/salutation"
6
+ require "async"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require_relative "../../requests"
13
+
14
+ module Paid
15
+ class ContactsClient
16
+ # @return [Paid::RequestClient]
17
+ attr_reader :request_client
18
+
19
+
20
+ # @param request_client [Paid::RequestClient]
21
+ # @return [Paid::ContactsClient]
22
+ def initialize(request_client:)
23
+ @request_client = request_client
24
+ end
25
+ # @param request_options [Paid::RequestOptions]
26
+ # @return [Array<Paid::Contact>]
27
+ # @example
28
+ # api = Paid::Client.new(
29
+ # base_url: "https://api.example.com",
30
+ # environment: Paid::Environment::PRODUCTION,
31
+ # token: "YOUR_AUTH_TOKEN"
32
+ # )
33
+ # api.contacts.list
34
+ def list(request_options: nil)
35
+ response = @request_client.conn.get do | req |
36
+ unless request_options&.timeout_in_seconds.nil?
37
+ req.options.timeout = request_options.timeout_in_seconds
38
+ end
39
+ unless request_options&.token.nil?
40
+ req.headers["Authorization"] = request_options.token
41
+ end
42
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
43
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
44
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
45
+ end
46
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
47
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
48
+ end
49
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
50
+ end
51
+ parsed_json = JSON.parse(response.body)
52
+ parsed_json&.map do | item |
53
+ item = item.to_json
54
+ Paid::Contact.from_json(json_object: item)
55
+ end
56
+ end
57
+ # @param external_id [String]
58
+ # @param customer_id [String]
59
+ # @param customer_external_id [String]
60
+ # @param salutation [Paid::Salutation]
61
+ # @param first_name [String]
62
+ # @param last_name [String]
63
+ # @param email [String]
64
+ # @param phone [String]
65
+ # @param billing_street [String]
66
+ # @param billing_city [String]
67
+ # @param billing_state_province [String]
68
+ # @param billing_country [String]
69
+ # @param billing_postal_code [String]
70
+ # @param request_options [Paid::RequestOptions]
71
+ # @return [Paid::Contact]
72
+ # @example
73
+ # api = Paid::Client.new(
74
+ # base_url: "https://api.example.com",
75
+ # environment: Paid::Environment::PRODUCTION,
76
+ # token: "YOUR_AUTH_TOKEN"
77
+ # )
78
+ # api.contacts.create(
79
+ # salutation: MR,
80
+ # first_name: "firstName",
81
+ # last_name: "lastName",
82
+ # email: "email",
83
+ # billing_street: "billingStreet",
84
+ # billing_city: "billingCity",
85
+ # billing_country: "billingCountry",
86
+ # billing_postal_code: "billingPostalCode"
87
+ # )
88
+ def create(external_id: nil, customer_id: nil, customer_external_id: nil, salutation:, first_name:, last_name:, email:, phone: nil, billing_street:, billing_city:, billing_state_province: nil, billing_country:, billing_postal_code:, request_options: nil)
89
+ response = @request_client.conn.post do | req |
90
+ unless request_options&.timeout_in_seconds.nil?
91
+ req.options.timeout = request_options.timeout_in_seconds
92
+ end
93
+ unless request_options&.token.nil?
94
+ req.headers["Authorization"] = request_options.token
95
+ end
96
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
97
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
98
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
99
+ end
100
+ req.body = { **(request_options&.additional_body_parameters || {}), externalId: external_id, customerId: customer_id, customerExternalId: customer_external_id, salutation: salutation, firstName: first_name, lastName: last_name, email: email, phone: phone, billingStreet: billing_street, billingCity: billing_city, billingStateProvince: billing_state_province, billingCountry: billing_country, billingPostalCode: billing_postal_code }.compact
101
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
102
+ end
103
+ Paid::Contact.from_json(json_object: response.body)
104
+ end
105
+ # @param contact_id [String]
106
+ # @param request_options [Paid::RequestOptions]
107
+ # @return [Paid::Contact]
108
+ # @example
109
+ # api = Paid::Client.new(
110
+ # base_url: "https://api.example.com",
111
+ # environment: Paid::Environment::PRODUCTION,
112
+ # token: "YOUR_AUTH_TOKEN"
113
+ # )
114
+ # api.contacts.get(contact_id: "contactId")
115
+ def get(contact_id:, request_options: nil)
116
+ response = @request_client.conn.get do | req |
117
+ unless request_options&.timeout_in_seconds.nil?
118
+ req.options.timeout = request_options.timeout_in_seconds
119
+ end
120
+ unless request_options&.token.nil?
121
+ req.headers["Authorization"] = request_options.token
122
+ end
123
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
124
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
125
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
126
+ end
127
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
128
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
129
+ end
130
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/#{contact_id}"
131
+ end
132
+ Paid::Contact.from_json(json_object: response.body)
133
+ end
134
+ # @param contact_id [String]
135
+ # @param request_options [Paid::RequestOptions]
136
+ # @return [Void]
137
+ # @example
138
+ # api = Paid::Client.new(
139
+ # base_url: "https://api.example.com",
140
+ # environment: Paid::Environment::PRODUCTION,
141
+ # token: "YOUR_AUTH_TOKEN"
142
+ # )
143
+ # api.contacts.delete(contact_id: "contactId")
144
+ def delete(contact_id:, request_options: nil)
145
+ response = @request_client.conn.delete do | req |
146
+ unless request_options&.timeout_in_seconds.nil?
147
+ req.options.timeout = request_options.timeout_in_seconds
148
+ end
149
+ unless request_options&.token.nil?
150
+ req.headers["Authorization"] = request_options.token
151
+ end
152
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
153
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
154
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
155
+ end
156
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
157
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
158
+ end
159
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/#{contact_id}"
160
+ end
161
+ end
162
+ # @param external_id [String]
163
+ # @param request_options [Paid::RequestOptions]
164
+ # @return [Paid::Contact]
165
+ # @example
166
+ # api = Paid::Client.new(
167
+ # base_url: "https://api.example.com",
168
+ # environment: Paid::Environment::PRODUCTION,
169
+ # token: "YOUR_AUTH_TOKEN"
170
+ # )
171
+ # api.contacts.get_by_external_id(external_id: "externalId")
172
+ def get_by_external_id(external_id:, request_options: nil)
173
+ response = @request_client.conn.get do | req |
174
+ unless request_options&.timeout_in_seconds.nil?
175
+ req.options.timeout = request_options.timeout_in_seconds
176
+ end
177
+ unless request_options&.token.nil?
178
+ req.headers["Authorization"] = request_options.token
179
+ end
180
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
181
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
182
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
183
+ end
184
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
185
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
186
+ end
187
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/external/#{external_id}"
188
+ end
189
+ Paid::Contact.from_json(json_object: response.body)
190
+ end
191
+ # @param external_id [String]
192
+ # @param request_options [Paid::RequestOptions]
193
+ # @return [Void]
194
+ # @example
195
+ # api = Paid::Client.new(
196
+ # base_url: "https://api.example.com",
197
+ # environment: Paid::Environment::PRODUCTION,
198
+ # token: "YOUR_AUTH_TOKEN"
199
+ # )
200
+ # api.contacts.delete_by_external_id(external_id: "externalId")
201
+ def delete_by_external_id(external_id:, request_options: nil)
202
+ response = @request_client.conn.delete do | req |
203
+ unless request_options&.timeout_in_seconds.nil?
204
+ req.options.timeout = request_options.timeout_in_seconds
205
+ end
206
+ unless request_options&.token.nil?
207
+ req.headers["Authorization"] = request_options.token
208
+ end
209
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
210
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
211
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
212
+ end
213
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
214
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
215
+ end
216
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/external/#{external_id}"
217
+ end
218
+ end
219
+ end
220
+ class AsyncContactsClient
221
+ # @return [Paid::AsyncRequestClient]
222
+ attr_reader :request_client
223
+
224
+
225
+ # @param request_client [Paid::RequestClient]
226
+ # @return [Paid::AsyncContactsClient]
227
+ def initialize(request_client:)
228
+ @request_client = request_client
229
+ end
230
+ # @param request_options [Paid::RequestOptions]
231
+ # @return [Array<Paid::Contact>]
232
+ # @example
233
+ # api = Paid::Client.new(
234
+ # base_url: "https://api.example.com",
235
+ # environment: Paid::Environment::PRODUCTION,
236
+ # token: "YOUR_AUTH_TOKEN"
237
+ # )
238
+ # api.contacts.list
239
+ def list(request_options: nil)
240
+ Async do
241
+ response = @request_client.conn.get do | req |
242
+ unless request_options&.timeout_in_seconds.nil?
243
+ req.options.timeout = request_options.timeout_in_seconds
244
+ end
245
+ unless request_options&.token.nil?
246
+ req.headers["Authorization"] = request_options.token
247
+ end
248
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
249
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
250
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
251
+ end
252
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
253
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
254
+ end
255
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
256
+ end
257
+ parsed_json = JSON.parse(response.body)
258
+ parsed_json&.map do | item |
259
+ item = item.to_json
260
+ Paid::Contact.from_json(json_object: item)
261
+ end
262
+ end
263
+ end
264
+ # @param external_id [String]
265
+ # @param customer_id [String]
266
+ # @param customer_external_id [String]
267
+ # @param salutation [Paid::Salutation]
268
+ # @param first_name [String]
269
+ # @param last_name [String]
270
+ # @param email [String]
271
+ # @param phone [String]
272
+ # @param billing_street [String]
273
+ # @param billing_city [String]
274
+ # @param billing_state_province [String]
275
+ # @param billing_country [String]
276
+ # @param billing_postal_code [String]
277
+ # @param request_options [Paid::RequestOptions]
278
+ # @return [Paid::Contact]
279
+ # @example
280
+ # api = Paid::Client.new(
281
+ # base_url: "https://api.example.com",
282
+ # environment: Paid::Environment::PRODUCTION,
283
+ # token: "YOUR_AUTH_TOKEN"
284
+ # )
285
+ # api.contacts.create(
286
+ # salutation: MR,
287
+ # first_name: "firstName",
288
+ # last_name: "lastName",
289
+ # email: "email",
290
+ # billing_street: "billingStreet",
291
+ # billing_city: "billingCity",
292
+ # billing_country: "billingCountry",
293
+ # billing_postal_code: "billingPostalCode"
294
+ # )
295
+ def create(external_id: nil, customer_id: nil, customer_external_id: nil, salutation:, first_name:, last_name:, email:, phone: nil, billing_street:, billing_city:, billing_state_province: nil, billing_country:, billing_postal_code:, request_options: nil)
296
+ Async do
297
+ response = @request_client.conn.post do | req |
298
+ unless request_options&.timeout_in_seconds.nil?
299
+ req.options.timeout = request_options.timeout_in_seconds
300
+ end
301
+ unless request_options&.token.nil?
302
+ req.headers["Authorization"] = request_options.token
303
+ end
304
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
305
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
306
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
307
+ end
308
+ req.body = { **(request_options&.additional_body_parameters || {}), externalId: external_id, customerId: customer_id, customerExternalId: customer_external_id, salutation: salutation, firstName: first_name, lastName: last_name, email: email, phone: phone, billingStreet: billing_street, billingCity: billing_city, billingStateProvince: billing_state_province, billingCountry: billing_country, billingPostalCode: billing_postal_code }.compact
309
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
310
+ end
311
+ Paid::Contact.from_json(json_object: response.body)
312
+ end
313
+ end
314
+ # @param contact_id [String]
315
+ # @param request_options [Paid::RequestOptions]
316
+ # @return [Paid::Contact]
317
+ # @example
318
+ # api = Paid::Client.new(
319
+ # base_url: "https://api.example.com",
320
+ # environment: Paid::Environment::PRODUCTION,
321
+ # token: "YOUR_AUTH_TOKEN"
322
+ # )
323
+ # api.contacts.get(contact_id: "contactId")
324
+ def get(contact_id:, request_options: nil)
325
+ Async do
326
+ response = @request_client.conn.get do | req |
327
+ unless request_options&.timeout_in_seconds.nil?
328
+ req.options.timeout = request_options.timeout_in_seconds
329
+ end
330
+ unless request_options&.token.nil?
331
+ req.headers["Authorization"] = request_options.token
332
+ end
333
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
334
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
335
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
336
+ end
337
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
338
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
339
+ end
340
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/#{contact_id}"
341
+ end
342
+ Paid::Contact.from_json(json_object: response.body)
343
+ end
344
+ end
345
+ # @param contact_id [String]
346
+ # @param request_options [Paid::RequestOptions]
347
+ # @return [Void]
348
+ # @example
349
+ # api = Paid::Client.new(
350
+ # base_url: "https://api.example.com",
351
+ # environment: Paid::Environment::PRODUCTION,
352
+ # token: "YOUR_AUTH_TOKEN"
353
+ # )
354
+ # api.contacts.delete(contact_id: "contactId")
355
+ def delete(contact_id:, request_options: nil)
356
+ Async do
357
+ response = @request_client.conn.delete do | req |
358
+ unless request_options&.timeout_in_seconds.nil?
359
+ req.options.timeout = request_options.timeout_in_seconds
360
+ end
361
+ unless request_options&.token.nil?
362
+ req.headers["Authorization"] = request_options.token
363
+ end
364
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
365
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
366
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
367
+ end
368
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
369
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
370
+ end
371
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/#{contact_id}"
372
+ end
373
+ end
374
+ end
375
+ # @param external_id [String]
376
+ # @param request_options [Paid::RequestOptions]
377
+ # @return [Paid::Contact]
378
+ # @example
379
+ # api = Paid::Client.new(
380
+ # base_url: "https://api.example.com",
381
+ # environment: Paid::Environment::PRODUCTION,
382
+ # token: "YOUR_AUTH_TOKEN"
383
+ # )
384
+ # api.contacts.get_by_external_id(external_id: "externalId")
385
+ def get_by_external_id(external_id:, request_options: nil)
386
+ Async do
387
+ response = @request_client.conn.get do | req |
388
+ unless request_options&.timeout_in_seconds.nil?
389
+ req.options.timeout = request_options.timeout_in_seconds
390
+ end
391
+ unless request_options&.token.nil?
392
+ req.headers["Authorization"] = request_options.token
393
+ end
394
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
395
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
396
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
397
+ end
398
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
399
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
400
+ end
401
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/external/#{external_id}"
402
+ end
403
+ Paid::Contact.from_json(json_object: response.body)
404
+ end
405
+ end
406
+ # @param external_id [String]
407
+ # @param request_options [Paid::RequestOptions]
408
+ # @return [Void]
409
+ # @example
410
+ # api = Paid::Client.new(
411
+ # base_url: "https://api.example.com",
412
+ # environment: Paid::Environment::PRODUCTION,
413
+ # token: "YOUR_AUTH_TOKEN"
414
+ # )
415
+ # api.contacts.delete_by_external_id(external_id: "externalId")
416
+ def delete_by_external_id(external_id:, request_options: nil)
417
+ Async do
418
+ response = @request_client.conn.delete do | req |
419
+ unless request_options&.timeout_in_seconds.nil?
420
+ req.options.timeout = request_options.timeout_in_seconds
421
+ end
422
+ unless request_options&.token.nil?
423
+ req.headers["Authorization"] = request_options.token
424
+ end
425
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
426
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
427
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
428
+ end
429
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
430
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
431
+ end
432
+ req.url "#{@request_client.get_url(request_options: request_options)}/contacts/external/#{external_id}"
433
+ end
434
+ end
435
+ end
436
+ end
437
+ end