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,379 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "lines/client"
4
+ require_relative "../types/order"
5
+ require "json"
6
+ require_relative "../types/order_line_create"
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 OrdersClient
16
+ # @return [Paid::RequestClient]
17
+ attr_reader :request_client
18
+ # @return [Paid::Orders::LinesClient]
19
+ attr_reader :lines
20
+
21
+
22
+ # @param request_client [Paid::RequestClient]
23
+ # @return [Paid::OrdersClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ @lines = Paid::Orders::LinesClient.new(request_client: request_client)
27
+ end
28
+ # @param request_options [Paid::RequestOptions]
29
+ # @return [Array<Paid::Order>]
30
+ # @example
31
+ # api = Paid::Client.new(
32
+ # base_url: "https://api.example.com",
33
+ # environment: Paid::Environment::PRODUCTION,
34
+ # token: "YOUR_AUTH_TOKEN"
35
+ # )
36
+ # api.orders.list
37
+ def list(request_options: nil)
38
+ response = @request_client.conn.get do | req |
39
+ unless request_options&.timeout_in_seconds.nil?
40
+ req.options.timeout = request_options.timeout_in_seconds
41
+ end
42
+ unless request_options&.token.nil?
43
+ req.headers["Authorization"] = request_options.token
44
+ end
45
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
46
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
47
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
48
+ end
49
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
50
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
51
+ end
52
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders"
53
+ end
54
+ parsed_json = JSON.parse(response.body)
55
+ parsed_json&.map do | item |
56
+ item = item.to_json
57
+ Paid::Order.from_json(json_object: item)
58
+ end
59
+ end
60
+ # @param customer_id [String]
61
+ # @param customer_external_id [String]
62
+ # @param billing_contact_id [String]
63
+ # @param name [String]
64
+ # @param description [String]
65
+ # @param start_date [String]
66
+ # @param end_date [String]
67
+ # @param currency [String]
68
+ # @param order_lines [Array<Hash>] Request of type Array<Paid::OrderLineCreate>, as a Hash
69
+ # * :agent_id (String)
70
+ # * :agent_external_id (String)
71
+ # * :name (String)
72
+ # * :description (String)
73
+ # @param request_options [Paid::RequestOptions]
74
+ # @return [Paid::Order]
75
+ # @example
76
+ # api = Paid::Client.new(
77
+ # base_url: "https://api.example.com",
78
+ # environment: Paid::Environment::PRODUCTION,
79
+ # token: "YOUR_AUTH_TOKEN"
80
+ # )
81
+ # api.orders.create(
82
+ # customer_id: "customerId",
83
+ # billing_contact_id: "billingContactId",
84
+ # name: "name",
85
+ # start_date: "startDate",
86
+ # currency: "currency"
87
+ # )
88
+ def create(customer_id:, customer_external_id: nil, billing_contact_id:, name:, description: nil, start_date:, end_date: nil, currency:, order_lines: nil, 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 || {}), customerId: customer_id, customerExternalId: customer_external_id, billingContactId: billing_contact_id, name: name, description: description, startDate: start_date, endDate: end_date, currency: currency, orderLines: order_lines }.compact
101
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders"
102
+ end
103
+ Paid::Order.from_json(json_object: response.body)
104
+ end
105
+ # @param order_id [String]
106
+ # @param request_options [Paid::RequestOptions]
107
+ # @return [Paid::Order]
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.orders.get(order_id: "orderId")
115
+ def get(order_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)}/orders/#{order_id}"
131
+ end
132
+ Paid::Order.from_json(json_object: response.body)
133
+ end
134
+ # @param order_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.orders.delete(order_id: "orderId")
144
+ def delete(order_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)}/orders/#{order_id}"
160
+ end
161
+ end
162
+ # @param order_id [String]
163
+ # @param request_options [Paid::RequestOptions]
164
+ # @return [Paid::Order]
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.orders.activate(order_id: "orderId")
172
+ def activate(order_id:, request_options: nil)
173
+ response = @request_client.conn.post 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)}/orders/#{order_id}/activate"
188
+ end
189
+ Paid::Order.from_json(json_object: response.body)
190
+ end
191
+ end
192
+ class AsyncOrdersClient
193
+ # @return [Paid::AsyncRequestClient]
194
+ attr_reader :request_client
195
+ # @return [Paid::Orders::LinesClient]
196
+ attr_reader :lines
197
+
198
+
199
+ # @param request_client [Paid::RequestClient]
200
+ # @return [Paid::AsyncOrdersClient]
201
+ def initialize(request_client:)
202
+ @request_client = request_client
203
+ @lines = Paid::Orders::AsyncLinesClient.new(request_client: request_client)
204
+ end
205
+ # @param request_options [Paid::RequestOptions]
206
+ # @return [Array<Paid::Order>]
207
+ # @example
208
+ # api = Paid::Client.new(
209
+ # base_url: "https://api.example.com",
210
+ # environment: Paid::Environment::PRODUCTION,
211
+ # token: "YOUR_AUTH_TOKEN"
212
+ # )
213
+ # api.orders.list
214
+ def list(request_options: nil)
215
+ Async do
216
+ response = @request_client.conn.get do | req |
217
+ unless request_options&.timeout_in_seconds.nil?
218
+ req.options.timeout = request_options.timeout_in_seconds
219
+ end
220
+ unless request_options&.token.nil?
221
+ req.headers["Authorization"] = request_options.token
222
+ end
223
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
224
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
225
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
226
+ end
227
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
228
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
229
+ end
230
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders"
231
+ end
232
+ parsed_json = JSON.parse(response.body)
233
+ parsed_json&.map do | item |
234
+ item = item.to_json
235
+ Paid::Order.from_json(json_object: item)
236
+ end
237
+ end
238
+ end
239
+ # @param customer_id [String]
240
+ # @param customer_external_id [String]
241
+ # @param billing_contact_id [String]
242
+ # @param name [String]
243
+ # @param description [String]
244
+ # @param start_date [String]
245
+ # @param end_date [String]
246
+ # @param currency [String]
247
+ # @param order_lines [Array<Hash>] Request of type Array<Paid::OrderLineCreate>, as a Hash
248
+ # * :agent_id (String)
249
+ # * :agent_external_id (String)
250
+ # * :name (String)
251
+ # * :description (String)
252
+ # @param request_options [Paid::RequestOptions]
253
+ # @return [Paid::Order]
254
+ # @example
255
+ # api = Paid::Client.new(
256
+ # base_url: "https://api.example.com",
257
+ # environment: Paid::Environment::PRODUCTION,
258
+ # token: "YOUR_AUTH_TOKEN"
259
+ # )
260
+ # api.orders.create(
261
+ # customer_id: "customerId",
262
+ # billing_contact_id: "billingContactId",
263
+ # name: "name",
264
+ # start_date: "startDate",
265
+ # currency: "currency"
266
+ # )
267
+ def create(customer_id:, customer_external_id: nil, billing_contact_id:, name:, description: nil, start_date:, end_date: nil, currency:, order_lines: nil, request_options: nil)
268
+ Async do
269
+ response = @request_client.conn.post do | req |
270
+ unless request_options&.timeout_in_seconds.nil?
271
+ req.options.timeout = request_options.timeout_in_seconds
272
+ end
273
+ unless request_options&.token.nil?
274
+ req.headers["Authorization"] = request_options.token
275
+ end
276
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
277
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
278
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
279
+ end
280
+ req.body = { **(request_options&.additional_body_parameters || {}), customerId: customer_id, customerExternalId: customer_external_id, billingContactId: billing_contact_id, name: name, description: description, startDate: start_date, endDate: end_date, currency: currency, orderLines: order_lines }.compact
281
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders"
282
+ end
283
+ Paid::Order.from_json(json_object: response.body)
284
+ end
285
+ end
286
+ # @param order_id [String]
287
+ # @param request_options [Paid::RequestOptions]
288
+ # @return [Paid::Order]
289
+ # @example
290
+ # api = Paid::Client.new(
291
+ # base_url: "https://api.example.com",
292
+ # environment: Paid::Environment::PRODUCTION,
293
+ # token: "YOUR_AUTH_TOKEN"
294
+ # )
295
+ # api.orders.get(order_id: "orderId")
296
+ def get(order_id:, request_options: nil)
297
+ Async do
298
+ response = @request_client.conn.get do | req |
299
+ unless request_options&.timeout_in_seconds.nil?
300
+ req.options.timeout = request_options.timeout_in_seconds
301
+ end
302
+ unless request_options&.token.nil?
303
+ req.headers["Authorization"] = request_options.token
304
+ end
305
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
306
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
307
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
308
+ end
309
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
310
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
311
+ end
312
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders/#{order_id}"
313
+ end
314
+ Paid::Order.from_json(json_object: response.body)
315
+ end
316
+ end
317
+ # @param order_id [String]
318
+ # @param request_options [Paid::RequestOptions]
319
+ # @return [Void]
320
+ # @example
321
+ # api = Paid::Client.new(
322
+ # base_url: "https://api.example.com",
323
+ # environment: Paid::Environment::PRODUCTION,
324
+ # token: "YOUR_AUTH_TOKEN"
325
+ # )
326
+ # api.orders.delete(order_id: "orderId")
327
+ def delete(order_id:, request_options: nil)
328
+ Async do
329
+ response = @request_client.conn.delete do | req |
330
+ unless request_options&.timeout_in_seconds.nil?
331
+ req.options.timeout = request_options.timeout_in_seconds
332
+ end
333
+ unless request_options&.token.nil?
334
+ req.headers["Authorization"] = request_options.token
335
+ end
336
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
337
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
338
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
339
+ end
340
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
341
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
342
+ end
343
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders/#{order_id}"
344
+ end
345
+ end
346
+ end
347
+ # @param order_id [String]
348
+ # @param request_options [Paid::RequestOptions]
349
+ # @return [Paid::Order]
350
+ # @example
351
+ # api = Paid::Client.new(
352
+ # base_url: "https://api.example.com",
353
+ # environment: Paid::Environment::PRODUCTION,
354
+ # token: "YOUR_AUTH_TOKEN"
355
+ # )
356
+ # api.orders.activate(order_id: "orderId")
357
+ def activate(order_id:, request_options: nil)
358
+ Async do
359
+ response = @request_client.conn.post do | req |
360
+ unless request_options&.timeout_in_seconds.nil?
361
+ req.options.timeout = request_options.timeout_in_seconds
362
+ end
363
+ unless request_options&.token.nil?
364
+ req.headers["Authorization"] = request_options.token
365
+ end
366
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
367
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
368
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
369
+ end
370
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
371
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
372
+ end
373
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders/#{order_id}/activate"
374
+ end
375
+ Paid::Order.from_json(json_object: response.body)
376
+ end
377
+ end
378
+ end
379
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../types/order_line_create"
4
+ require_relative "../../types/order"
5
+ require "async"
6
+ require_relative "../../../requests"
7
+
8
+ module Paid
9
+ module Orders
10
+ class LinesClient
11
+ # @return [Paid::RequestClient]
12
+ attr_reader :request_client
13
+
14
+
15
+ # @param request_client [Paid::RequestClient]
16
+ # @return [Paid::Orders::LinesClient]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+ # @param order_id [String]
21
+ # @param lines [Array<Hash>] Request of type Array<Paid::OrderLineCreate>, as a Hash
22
+ # * :agent_id (String)
23
+ # * :agent_external_id (String)
24
+ # * :name (String)
25
+ # * :description (String)
26
+ # @param request_options [Paid::RequestOptions]
27
+ # @return [Paid::Order]
28
+ # @example
29
+ # api = Paid::Client.new(
30
+ # base_url: "https://api.example.com",
31
+ # environment: Paid::Environment::PRODUCTION,
32
+ # token: "YOUR_AUTH_TOKEN"
33
+ # )
34
+ # api.orders.lines.update(order_id: "orderId")
35
+ def update(order_id:, lines: nil, request_options: nil)
36
+ response = @request_client.conn.put do | req |
37
+ unless request_options&.timeout_in_seconds.nil?
38
+ req.options.timeout = request_options.timeout_in_seconds
39
+ end
40
+ unless request_options&.token.nil?
41
+ req.headers["Authorization"] = request_options.token
42
+ end
43
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
44
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
45
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
46
+ end
47
+ req.body = { **(request_options&.additional_body_parameters || {}), lines: lines }.compact
48
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders/#{order_id}/lines"
49
+ end
50
+ Paid::Order.from_json(json_object: response.body)
51
+ end
52
+ end
53
+ class AsyncLinesClient
54
+ # @return [Paid::AsyncRequestClient]
55
+ attr_reader :request_client
56
+
57
+
58
+ # @param request_client [Paid::RequestClient]
59
+ # @return [Paid::Orders::AsyncLinesClient]
60
+ def initialize(request_client:)
61
+ @request_client = request_client
62
+ end
63
+ # @param order_id [String]
64
+ # @param lines [Array<Hash>] Request of type Array<Paid::OrderLineCreate>, as a Hash
65
+ # * :agent_id (String)
66
+ # * :agent_external_id (String)
67
+ # * :name (String)
68
+ # * :description (String)
69
+ # @param request_options [Paid::RequestOptions]
70
+ # @return [Paid::Order]
71
+ # @example
72
+ # api = Paid::Client.new(
73
+ # base_url: "https://api.example.com",
74
+ # environment: Paid::Environment::PRODUCTION,
75
+ # token: "YOUR_AUTH_TOKEN"
76
+ # )
77
+ # api.orders.lines.update(order_id: "orderId")
78
+ def update(order_id:, lines: nil, request_options: nil)
79
+ Async do
80
+ response = @request_client.conn.put do | req |
81
+ unless request_options&.timeout_in_seconds.nil?
82
+ req.options.timeout = request_options.timeout_in_seconds
83
+ end
84
+ unless request_options&.token.nil?
85
+ req.headers["Authorization"] = request_options.token
86
+ end
87
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
88
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
89
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
90
+ end
91
+ req.body = { **(request_options&.additional_body_parameters || {}), lines: lines }.compact
92
+ req.url "#{@request_client.get_url(request_options: request_options)}/orders/#{order_id}/lines"
93
+ end
94
+ Paid::Order.from_json(json_object: response.body)
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Paid
6
+ class Address
7
+ # @return [String]
8
+ attr_reader :line_1
9
+ # @return [String]
10
+ attr_reader :line_2
11
+ # @return [String]
12
+ attr_reader :city
13
+ # @return [String]
14
+ attr_reader :state
15
+ # @return [String]
16
+ attr_reader :zip_code
17
+ # @return [String]
18
+ attr_reader :country
19
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
20
+ attr_reader :additional_properties
21
+ # @return [Object]
22
+ attr_reader :_field_set
23
+ protected :_field_set
24
+
25
+ OMIT = Object.new
26
+
27
+ # @param line_1 [String]
28
+ # @param line_2 [String]
29
+ # @param city [String]
30
+ # @param state [String]
31
+ # @param zip_code [String]
32
+ # @param country [String]
33
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
34
+ # @return [Paid::Address]
35
+ def initialize(line_1:, line_2: OMIT, city:, state:, zip_code:, country:, additional_properties: nil)
36
+ @line_1 = line_1
37
+ @line_2 = line_2 if line_2 != OMIT
38
+ @city = city
39
+ @state = state
40
+ @zip_code = zip_code
41
+ @country = country
42
+ @additional_properties = additional_properties
43
+ @_field_set = { "line1": line_1, "line2": line_2, "city": city, "state": state, "zipCode": zip_code, "country": country }.reject do | _k, v |
44
+ v == OMIT
45
+ end
46
+ end
47
+ # Deserialize a JSON object to an instance of Address
48
+ #
49
+ # @param json_object [String]
50
+ # @return [Paid::Address]
51
+ def self.from_json(json_object:)
52
+ struct = JSON.parse(json_object, object_class: OpenStruct)
53
+ parsed_json = JSON.parse(json_object)
54
+ line_1 = parsed_json["line1"]
55
+ line_2 = parsed_json["line2"]
56
+ city = parsed_json["city"]
57
+ state = parsed_json["state"]
58
+ zip_code = parsed_json["zipCode"]
59
+ country = parsed_json["country"]
60
+ new(
61
+ line_1: line_1,
62
+ line_2: line_2,
63
+ city: city,
64
+ state: state,
65
+ zip_code: zip_code,
66
+ country: country,
67
+ additional_properties: struct
68
+ )
69
+ end
70
+ # Serialize an instance of Address to a JSON object
71
+ #
72
+ # @return [String]
73
+ def to_json
74
+ @_field_set&.to_json
75
+ end
76
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
77
+ # hash and check each fields type against the current object's property
78
+ # definitions.
79
+ #
80
+ # @param obj [Object]
81
+ # @return [Void]
82
+ def self.validate_raw(obj:)
83
+ obj.line_1.is_a?(String) != false || raise("Passed value for field obj.line_1 is not the expected type, validation failed.")
84
+ obj.line_2&.is_a?(String) != false || raise("Passed value for field obj.line_2 is not the expected type, validation failed.")
85
+ obj.city.is_a?(String) != false || raise("Passed value for field obj.city is not the expected type, validation failed.")
86
+ obj.state.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
87
+ obj.zip_code.is_a?(String) != false || raise("Passed value for field obj.zip_code is not the expected type, validation failed.")
88
+ obj.country.is_a?(String) != false || raise("Passed value for field obj.country is not the expected type, validation failed.")
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+ require_relative "agent_attribute"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Paid
7
+ class Agent
8
+ # @return [String]
9
+ attr_reader :id
10
+ # @return [String]
11
+ attr_reader :external_id
12
+ # @return [String]
13
+ attr_reader :organization_id
14
+ # @return [String]
15
+ attr_reader :name
16
+ # @return [String]
17
+ attr_reader :description
18
+ # @return [Boolean]
19
+ attr_reader :active
20
+ # @return [String]
21
+ attr_reader :agent_code
22
+ # @return [Array<Paid::AgentAttribute>]
23
+ attr_reader :agent_attributes
24
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
25
+ attr_reader :additional_properties
26
+ # @return [Object]
27
+ attr_reader :_field_set
28
+ protected :_field_set
29
+
30
+ OMIT = Object.new
31
+
32
+ # @param id [String]
33
+ # @param external_id [String]
34
+ # @param organization_id [String]
35
+ # @param name [String]
36
+ # @param description [String]
37
+ # @param active [Boolean]
38
+ # @param agent_code [String]
39
+ # @param agent_attributes [Array<Paid::AgentAttribute>]
40
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
41
+ # @return [Paid::Agent]
42
+ def initialize(id:, external_id: OMIT, organization_id:, name:, description: OMIT, active:, agent_code: OMIT, agent_attributes: OMIT, additional_properties: nil)
43
+ @id = id
44
+ @external_id = external_id if external_id != OMIT
45
+ @organization_id = organization_id
46
+ @name = name
47
+ @description = description if description != OMIT
48
+ @active = active
49
+ @agent_code = agent_code if agent_code != OMIT
50
+ @agent_attributes = agent_attributes if agent_attributes != OMIT
51
+ @additional_properties = additional_properties
52
+ @_field_set = { "id": id, "externalId": external_id, "organizationId": organization_id, "name": name, "description": description, "active": active, "agentCode": agent_code, "agentAttributes": agent_attributes }.reject do | _k, v |
53
+ v == OMIT
54
+ end
55
+ end
56
+ # Deserialize a JSON object to an instance of Agent
57
+ #
58
+ # @param json_object [String]
59
+ # @return [Paid::Agent]
60
+ def self.from_json(json_object:)
61
+ struct = JSON.parse(json_object, object_class: OpenStruct)
62
+ parsed_json = JSON.parse(json_object)
63
+ id = parsed_json["id"]
64
+ external_id = parsed_json["externalId"]
65
+ organization_id = parsed_json["organizationId"]
66
+ name = parsed_json["name"]
67
+ description = parsed_json["description"]
68
+ active = parsed_json["active"]
69
+ agent_code = parsed_json["agentCode"]
70
+ agent_attributes = parsed_json["agentAttributes"]&.map do | item |
71
+ item = item.to_json
72
+ Paid::AgentAttribute.from_json(json_object: item)
73
+ end
74
+ new(
75
+ id: id,
76
+ external_id: external_id,
77
+ organization_id: organization_id,
78
+ name: name,
79
+ description: description,
80
+ active: active,
81
+ agent_code: agent_code,
82
+ agent_attributes: agent_attributes,
83
+ additional_properties: struct
84
+ )
85
+ end
86
+ # Serialize an instance of Agent to a JSON object
87
+ #
88
+ # @return [String]
89
+ def to_json
90
+ @_field_set&.to_json
91
+ end
92
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
93
+ # hash and check each fields type against the current object's property
94
+ # definitions.
95
+ #
96
+ # @param obj [Object]
97
+ # @return [Void]
98
+ def self.validate_raw(obj:)
99
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
100
+ obj.external_id&.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
101
+ obj.organization_id.is_a?(String) != false || raise("Passed value for field obj.organization_id is not the expected type, validation failed.")
102
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
103
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
104
+ obj.active.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
105
+ obj.agent_code&.is_a?(String) != false || raise("Passed value for field obj.agent_code is not the expected type, validation failed.")
106
+ obj.agent_attributes&.is_a?(Array) != false || raise("Passed value for field obj.agent_attributes is not the expected type, validation failed.")
107
+ end
108
+ end
109
+ end