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,604 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "../types/customer"
4
+ require "json"
5
+ require_relative "../types/tax_exempt_status"
6
+ require_relative "../types/creation_source"
7
+ require_relative "../types/address"
8
+ require_relative "../types/customer_update"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require "async"
16
+ require "async"
17
+ require_relative "../../requests"
18
+
19
+ module Paid
20
+ class CustomersClient
21
+ # @return [Paid::RequestClient]
22
+ attr_reader :request_client
23
+
24
+
25
+ # @param request_client [Paid::RequestClient]
26
+ # @return [Paid::CustomersClient]
27
+ def initialize(request_client:)
28
+ @request_client = request_client
29
+ end
30
+ # @param request_options [Paid::RequestOptions]
31
+ # @return [Array<Paid::Customer>]
32
+ # @example
33
+ # api = Paid::Client.new(
34
+ # base_url: "https://api.example.com",
35
+ # environment: Paid::Environment::PRODUCTION,
36
+ # token: "YOUR_AUTH_TOKEN"
37
+ # )
38
+ # api.customers.list
39
+ def list(request_options: nil)
40
+ response = @request_client.conn.get do | req |
41
+ unless request_options&.timeout_in_seconds.nil?
42
+ req.options.timeout = request_options.timeout_in_seconds
43
+ end
44
+ unless request_options&.token.nil?
45
+ req.headers["Authorization"] = request_options.token
46
+ end
47
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
48
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
49
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
50
+ end
51
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
52
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
53
+ end
54
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers"
55
+ end
56
+ parsed_json = JSON.parse(response.body)
57
+ parsed_json&.map do | item |
58
+ item = item.to_json
59
+ Paid::Customer.from_json(json_object: item)
60
+ end
61
+ end
62
+ # @param name [String]
63
+ # @param external_id [String]
64
+ # @param phone [String]
65
+ # @param employee_count [Float]
66
+ # @param annual_revenue [Float]
67
+ # @param tax_exempt_status [Paid::TaxExemptStatus]
68
+ # @param creation_source [Paid::CreationSource]
69
+ # @param website [String]
70
+ # @param billing_address [Hash] Request of type Paid::Address, as a Hash
71
+ # * :line_1 (String)
72
+ # * :line_2 (String)
73
+ # * :city (String)
74
+ # * :state (String)
75
+ # * :zip_code (String)
76
+ # * :country (String)
77
+ # @param request_options [Paid::RequestOptions]
78
+ # @return [Paid::Customer]
79
+ # @example
80
+ # api = Paid::Client.new(
81
+ # base_url: "https://api.example.com",
82
+ # environment: Paid::Environment::PRODUCTION,
83
+ # token: "YOUR_AUTH_TOKEN"
84
+ # )
85
+ # api.customers.create(name: "name")
86
+ def create(name:, external_id: nil, phone: nil, employee_count: nil, annual_revenue: nil, tax_exempt_status: nil, creation_source: nil, website: nil, billing_address: nil, request_options: nil)
87
+ response = @request_client.conn.post do | req |
88
+ unless request_options&.timeout_in_seconds.nil?
89
+ req.options.timeout = request_options.timeout_in_seconds
90
+ end
91
+ unless request_options&.token.nil?
92
+ req.headers["Authorization"] = request_options.token
93
+ end
94
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
95
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
96
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
97
+ end
98
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, externalId: external_id, phone: phone, employeeCount: employee_count, annualRevenue: annual_revenue, taxExemptStatus: tax_exempt_status, creationSource: creation_source, website: website, billingAddress: billing_address }.compact
99
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers"
100
+ end
101
+ Paid::Customer.from_json(json_object: response.body)
102
+ end
103
+ # @param customer_id [String]
104
+ # @param request_options [Paid::RequestOptions]
105
+ # @return [Paid::Customer]
106
+ # @example
107
+ # api = Paid::Client.new(
108
+ # base_url: "https://api.example.com",
109
+ # environment: Paid::Environment::PRODUCTION,
110
+ # token: "YOUR_AUTH_TOKEN"
111
+ # )
112
+ # api.customers.get(customer_id: "customerId")
113
+ def get(customer_id:, request_options: nil)
114
+ response = @request_client.conn.get do | req |
115
+ unless request_options&.timeout_in_seconds.nil?
116
+ req.options.timeout = request_options.timeout_in_seconds
117
+ end
118
+ unless request_options&.token.nil?
119
+ req.headers["Authorization"] = request_options.token
120
+ end
121
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
122
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
123
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
124
+ end
125
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
126
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
127
+ end
128
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
129
+ end
130
+ Paid::Customer.from_json(json_object: response.body)
131
+ end
132
+ # @param customer_id [String]
133
+ # @param request [Hash] Request of type Paid::CustomerUpdate, as a Hash
134
+ # * :name (String)
135
+ # * :external_id (String)
136
+ # * :phone (String)
137
+ # * :employee_count (Float)
138
+ # * :annual_revenue (Float)
139
+ # * :tax_exempt_status (Paid::TaxExemptStatus)
140
+ # * :creation_source (Paid::CreationSource)
141
+ # * :website (String)
142
+ # * :billing_address (Hash)
143
+ # * :line_1 (String)
144
+ # * :line_2 (String)
145
+ # * :city (String)
146
+ # * :state (String)
147
+ # * :zip_code (String)
148
+ # * :country (String)
149
+ # @param request_options [Paid::RequestOptions]
150
+ # @return [Paid::Customer]
151
+ # @example
152
+ # api = Paid::Client.new(
153
+ # base_url: "https://api.example.com",
154
+ # environment: Paid::Environment::PRODUCTION,
155
+ # token: "YOUR_AUTH_TOKEN"
156
+ # )
157
+ # api.customers.update(customer_id: "customerId", request: { })
158
+ def update(customer_id:, request:, request_options: nil)
159
+ response = @request_client.conn.put do | req |
160
+ unless request_options&.timeout_in_seconds.nil?
161
+ req.options.timeout = request_options.timeout_in_seconds
162
+ end
163
+ unless request_options&.token.nil?
164
+ req.headers["Authorization"] = request_options.token
165
+ end
166
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
167
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
168
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
169
+ end
170
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
171
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
172
+ end
173
+ Paid::Customer.from_json(json_object: response.body)
174
+ end
175
+ # @param customer_id [String]
176
+ # @param request_options [Paid::RequestOptions]
177
+ # @return [Void]
178
+ # @example
179
+ # api = Paid::Client.new(
180
+ # base_url: "https://api.example.com",
181
+ # environment: Paid::Environment::PRODUCTION,
182
+ # token: "YOUR_AUTH_TOKEN"
183
+ # )
184
+ # api.customers.delete(customer_id: "customerId")
185
+ def delete(customer_id:, request_options: nil)
186
+ response = @request_client.conn.delete do | req |
187
+ unless request_options&.timeout_in_seconds.nil?
188
+ req.options.timeout = request_options.timeout_in_seconds
189
+ end
190
+ unless request_options&.token.nil?
191
+ req.headers["Authorization"] = request_options.token
192
+ end
193
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
194
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
195
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
196
+ end
197
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
198
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
199
+ end
200
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
201
+ end
202
+ end
203
+ # @param external_id [String]
204
+ # @param request_options [Paid::RequestOptions]
205
+ # @return [Paid::Customer]
206
+ # @example
207
+ # api = Paid::Client.new(
208
+ # base_url: "https://api.example.com",
209
+ # environment: Paid::Environment::PRODUCTION,
210
+ # token: "YOUR_AUTH_TOKEN"
211
+ # )
212
+ # api.customers.get_by_external_id(external_id: "externalId")
213
+ def get_by_external_id(external_id:, request_options: nil)
214
+ response = @request_client.conn.get do | req |
215
+ unless request_options&.timeout_in_seconds.nil?
216
+ req.options.timeout = request_options.timeout_in_seconds
217
+ end
218
+ unless request_options&.token.nil?
219
+ req.headers["Authorization"] = request_options.token
220
+ end
221
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
222
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
223
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
224
+ end
225
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
226
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
227
+ end
228
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
229
+ end
230
+ Paid::Customer.from_json(json_object: response.body)
231
+ end
232
+ # @param external_id [String]
233
+ # @param request [Hash] Request of type Paid::CustomerUpdate, as a Hash
234
+ # * :name (String)
235
+ # * :external_id (String)
236
+ # * :phone (String)
237
+ # * :employee_count (Float)
238
+ # * :annual_revenue (Float)
239
+ # * :tax_exempt_status (Paid::TaxExemptStatus)
240
+ # * :creation_source (Paid::CreationSource)
241
+ # * :website (String)
242
+ # * :billing_address (Hash)
243
+ # * :line_1 (String)
244
+ # * :line_2 (String)
245
+ # * :city (String)
246
+ # * :state (String)
247
+ # * :zip_code (String)
248
+ # * :country (String)
249
+ # @param request_options [Paid::RequestOptions]
250
+ # @return [Paid::Customer]
251
+ # @example
252
+ # api = Paid::Client.new(
253
+ # base_url: "https://api.example.com",
254
+ # environment: Paid::Environment::PRODUCTION,
255
+ # token: "YOUR_AUTH_TOKEN"
256
+ # )
257
+ # api.customers.update_by_external_id(external_id: "externalId", request: { })
258
+ def update_by_external_id(external_id:, request:, request_options: nil)
259
+ response = @request_client.conn.put do | req |
260
+ unless request_options&.timeout_in_seconds.nil?
261
+ req.options.timeout = request_options.timeout_in_seconds
262
+ end
263
+ unless request_options&.token.nil?
264
+ req.headers["Authorization"] = request_options.token
265
+ end
266
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
267
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
268
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
269
+ end
270
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
271
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
272
+ end
273
+ Paid::Customer.from_json(json_object: response.body)
274
+ end
275
+ # @param external_id [String]
276
+ # @param request_options [Paid::RequestOptions]
277
+ # @return [Void]
278
+ # @example
279
+ # api = Paid::Client.new(
280
+ # base_url: "https://api.example.com",
281
+ # environment: Paid::Environment::PRODUCTION,
282
+ # token: "YOUR_AUTH_TOKEN"
283
+ # )
284
+ # api.customers.delete_by_external_id(external_id: "externalId")
285
+ def delete_by_external_id(external_id:, request_options: nil)
286
+ response = @request_client.conn.delete do | req |
287
+ unless request_options&.timeout_in_seconds.nil?
288
+ req.options.timeout = request_options.timeout_in_seconds
289
+ end
290
+ unless request_options&.token.nil?
291
+ req.headers["Authorization"] = request_options.token
292
+ end
293
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
294
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
295
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
296
+ end
297
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
298
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
299
+ end
300
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
301
+ end
302
+ end
303
+ end
304
+ class AsyncCustomersClient
305
+ # @return [Paid::AsyncRequestClient]
306
+ attr_reader :request_client
307
+
308
+
309
+ # @param request_client [Paid::RequestClient]
310
+ # @return [Paid::AsyncCustomersClient]
311
+ def initialize(request_client:)
312
+ @request_client = request_client
313
+ end
314
+ # @param request_options [Paid::RequestOptions]
315
+ # @return [Array<Paid::Customer>]
316
+ # @example
317
+ # api = Paid::Client.new(
318
+ # base_url: "https://api.example.com",
319
+ # environment: Paid::Environment::PRODUCTION,
320
+ # token: "YOUR_AUTH_TOKEN"
321
+ # )
322
+ # api.customers.list
323
+ def list(request_options: nil)
324
+ Async do
325
+ response = @request_client.conn.get do | req |
326
+ unless request_options&.timeout_in_seconds.nil?
327
+ req.options.timeout = request_options.timeout_in_seconds
328
+ end
329
+ unless request_options&.token.nil?
330
+ req.headers["Authorization"] = request_options.token
331
+ end
332
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
333
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
334
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
335
+ end
336
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
337
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
338
+ end
339
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers"
340
+ end
341
+ parsed_json = JSON.parse(response.body)
342
+ parsed_json&.map do | item |
343
+ item = item.to_json
344
+ Paid::Customer.from_json(json_object: item)
345
+ end
346
+ end
347
+ end
348
+ # @param name [String]
349
+ # @param external_id [String]
350
+ # @param phone [String]
351
+ # @param employee_count [Float]
352
+ # @param annual_revenue [Float]
353
+ # @param tax_exempt_status [Paid::TaxExemptStatus]
354
+ # @param creation_source [Paid::CreationSource]
355
+ # @param website [String]
356
+ # @param billing_address [Hash] Request of type Paid::Address, as a Hash
357
+ # * :line_1 (String)
358
+ # * :line_2 (String)
359
+ # * :city (String)
360
+ # * :state (String)
361
+ # * :zip_code (String)
362
+ # * :country (String)
363
+ # @param request_options [Paid::RequestOptions]
364
+ # @return [Paid::Customer]
365
+ # @example
366
+ # api = Paid::Client.new(
367
+ # base_url: "https://api.example.com",
368
+ # environment: Paid::Environment::PRODUCTION,
369
+ # token: "YOUR_AUTH_TOKEN"
370
+ # )
371
+ # api.customers.create(name: "name")
372
+ def create(name:, external_id: nil, phone: nil, employee_count: nil, annual_revenue: nil, tax_exempt_status: nil, creation_source: nil, website: nil, billing_address: nil, request_options: nil)
373
+ Async do
374
+ response = @request_client.conn.post do | req |
375
+ unless request_options&.timeout_in_seconds.nil?
376
+ req.options.timeout = request_options.timeout_in_seconds
377
+ end
378
+ unless request_options&.token.nil?
379
+ req.headers["Authorization"] = request_options.token
380
+ end
381
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
382
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
383
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
384
+ end
385
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, externalId: external_id, phone: phone, employeeCount: employee_count, annualRevenue: annual_revenue, taxExemptStatus: tax_exempt_status, creationSource: creation_source, website: website, billingAddress: billing_address }.compact
386
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers"
387
+ end
388
+ Paid::Customer.from_json(json_object: response.body)
389
+ end
390
+ end
391
+ # @param customer_id [String]
392
+ # @param request_options [Paid::RequestOptions]
393
+ # @return [Paid::Customer]
394
+ # @example
395
+ # api = Paid::Client.new(
396
+ # base_url: "https://api.example.com",
397
+ # environment: Paid::Environment::PRODUCTION,
398
+ # token: "YOUR_AUTH_TOKEN"
399
+ # )
400
+ # api.customers.get(customer_id: "customerId")
401
+ def get(customer_id:, request_options: nil)
402
+ Async do
403
+ response = @request_client.conn.get do | req |
404
+ unless request_options&.timeout_in_seconds.nil?
405
+ req.options.timeout = request_options.timeout_in_seconds
406
+ end
407
+ unless request_options&.token.nil?
408
+ req.headers["Authorization"] = request_options.token
409
+ end
410
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
411
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
412
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
413
+ end
414
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
415
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
416
+ end
417
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
418
+ end
419
+ Paid::Customer.from_json(json_object: response.body)
420
+ end
421
+ end
422
+ # @param customer_id [String]
423
+ # @param request [Hash] Request of type Paid::CustomerUpdate, as a Hash
424
+ # * :name (String)
425
+ # * :external_id (String)
426
+ # * :phone (String)
427
+ # * :employee_count (Float)
428
+ # * :annual_revenue (Float)
429
+ # * :tax_exempt_status (Paid::TaxExemptStatus)
430
+ # * :creation_source (Paid::CreationSource)
431
+ # * :website (String)
432
+ # * :billing_address (Hash)
433
+ # * :line_1 (String)
434
+ # * :line_2 (String)
435
+ # * :city (String)
436
+ # * :state (String)
437
+ # * :zip_code (String)
438
+ # * :country (String)
439
+ # @param request_options [Paid::RequestOptions]
440
+ # @return [Paid::Customer]
441
+ # @example
442
+ # api = Paid::Client.new(
443
+ # base_url: "https://api.example.com",
444
+ # environment: Paid::Environment::PRODUCTION,
445
+ # token: "YOUR_AUTH_TOKEN"
446
+ # )
447
+ # api.customers.update(customer_id: "customerId", request: { })
448
+ def update(customer_id:, request:, request_options: nil)
449
+ Async do
450
+ response = @request_client.conn.put do | req |
451
+ unless request_options&.timeout_in_seconds.nil?
452
+ req.options.timeout = request_options.timeout_in_seconds
453
+ end
454
+ unless request_options&.token.nil?
455
+ req.headers["Authorization"] = request_options.token
456
+ end
457
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
458
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
459
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
460
+ end
461
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
462
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
463
+ end
464
+ Paid::Customer.from_json(json_object: response.body)
465
+ end
466
+ end
467
+ # @param customer_id [String]
468
+ # @param request_options [Paid::RequestOptions]
469
+ # @return [Void]
470
+ # @example
471
+ # api = Paid::Client.new(
472
+ # base_url: "https://api.example.com",
473
+ # environment: Paid::Environment::PRODUCTION,
474
+ # token: "YOUR_AUTH_TOKEN"
475
+ # )
476
+ # api.customers.delete(customer_id: "customerId")
477
+ def delete(customer_id:, request_options: nil)
478
+ Async do
479
+ response = @request_client.conn.delete do | req |
480
+ unless request_options&.timeout_in_seconds.nil?
481
+ req.options.timeout = request_options.timeout_in_seconds
482
+ end
483
+ unless request_options&.token.nil?
484
+ req.headers["Authorization"] = request_options.token
485
+ end
486
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
487
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
488
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
489
+ end
490
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
491
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
492
+ end
493
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/#{customer_id}"
494
+ end
495
+ end
496
+ end
497
+ # @param external_id [String]
498
+ # @param request_options [Paid::RequestOptions]
499
+ # @return [Paid::Customer]
500
+ # @example
501
+ # api = Paid::Client.new(
502
+ # base_url: "https://api.example.com",
503
+ # environment: Paid::Environment::PRODUCTION,
504
+ # token: "YOUR_AUTH_TOKEN"
505
+ # )
506
+ # api.customers.get_by_external_id(external_id: "externalId")
507
+ def get_by_external_id(external_id:, request_options: nil)
508
+ Async do
509
+ response = @request_client.conn.get do | req |
510
+ unless request_options&.timeout_in_seconds.nil?
511
+ req.options.timeout = request_options.timeout_in_seconds
512
+ end
513
+ unless request_options&.token.nil?
514
+ req.headers["Authorization"] = request_options.token
515
+ end
516
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
517
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
518
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
519
+ end
520
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
521
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
522
+ end
523
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
524
+ end
525
+ Paid::Customer.from_json(json_object: response.body)
526
+ end
527
+ end
528
+ # @param external_id [String]
529
+ # @param request [Hash] Request of type Paid::CustomerUpdate, as a Hash
530
+ # * :name (String)
531
+ # * :external_id (String)
532
+ # * :phone (String)
533
+ # * :employee_count (Float)
534
+ # * :annual_revenue (Float)
535
+ # * :tax_exempt_status (Paid::TaxExemptStatus)
536
+ # * :creation_source (Paid::CreationSource)
537
+ # * :website (String)
538
+ # * :billing_address (Hash)
539
+ # * :line_1 (String)
540
+ # * :line_2 (String)
541
+ # * :city (String)
542
+ # * :state (String)
543
+ # * :zip_code (String)
544
+ # * :country (String)
545
+ # @param request_options [Paid::RequestOptions]
546
+ # @return [Paid::Customer]
547
+ # @example
548
+ # api = Paid::Client.new(
549
+ # base_url: "https://api.example.com",
550
+ # environment: Paid::Environment::PRODUCTION,
551
+ # token: "YOUR_AUTH_TOKEN"
552
+ # )
553
+ # api.customers.update_by_external_id(external_id: "externalId", request: { })
554
+ def update_by_external_id(external_id:, request:, request_options: nil)
555
+ Async do
556
+ response = @request_client.conn.put do | req |
557
+ unless request_options&.timeout_in_seconds.nil?
558
+ req.options.timeout = request_options.timeout_in_seconds
559
+ end
560
+ unless request_options&.token.nil?
561
+ req.headers["Authorization"] = request_options.token
562
+ end
563
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
564
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
565
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
566
+ end
567
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
568
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
569
+ end
570
+ Paid::Customer.from_json(json_object: response.body)
571
+ end
572
+ end
573
+ # @param external_id [String]
574
+ # @param request_options [Paid::RequestOptions]
575
+ # @return [Void]
576
+ # @example
577
+ # api = Paid::Client.new(
578
+ # base_url: "https://api.example.com",
579
+ # environment: Paid::Environment::PRODUCTION,
580
+ # token: "YOUR_AUTH_TOKEN"
581
+ # )
582
+ # api.customers.delete_by_external_id(external_id: "externalId")
583
+ def delete_by_external_id(external_id:, request_options: nil)
584
+ Async do
585
+ response = @request_client.conn.delete do | req |
586
+ unless request_options&.timeout_in_seconds.nil?
587
+ req.options.timeout = request_options.timeout_in_seconds
588
+ end
589
+ unless request_options&.token.nil?
590
+ req.headers["Authorization"] = request_options.token
591
+ end
592
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
593
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
594
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
595
+ end
596
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
597
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
598
+ end
599
+ req.url "#{@request_client.get_url(request_options: request_options)}/customers/external/#{external_id}"
600
+ end
601
+ end
602
+ end
603
+ end
604
+ end