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.
- checksums.yaml +7 -0
- data/lib/environment.rb +9 -0
- data/lib/extensions/batch.rb +41 -0
- data/lib/gemconfig.rb +13 -0
- data/lib/paid_ruby/agents/client.rb +543 -0
- data/lib/paid_ruby/contacts/client.rb +437 -0
- data/lib/paid_ruby/customers/client.rb +604 -0
- data/lib/paid_ruby/orders/client.rb +379 -0
- data/lib/paid_ruby/orders/lines/client.rb +99 -0
- data/lib/paid_ruby/types/address.rb +91 -0
- data/lib/paid_ruby/types/agent.rb +109 -0
- data/lib/paid_ruby/types/agent_attribute.rb +74 -0
- data/lib/paid_ruby/types/agent_price_point.rb +81 -0
- data/lib/paid_ruby/types/agent_price_point_tiers.rb +70 -0
- data/lib/paid_ruby/types/agent_update.rb +95 -0
- data/lib/paid_ruby/types/api_error.rb +54 -0
- data/lib/paid_ruby/types/billing_frequency.rb +11 -0
- data/lib/paid_ruby/types/charge_type.rb +12 -0
- data/lib/paid_ruby/types/contact.rb +155 -0
- data/lib/paid_ruby/types/creation_source.rb +12 -0
- data/lib/paid_ruby/types/creation_state.rb +10 -0
- data/lib/paid_ruby/types/customer.rb +142 -0
- data/lib/paid_ruby/types/customer_update.rb +120 -0
- data/lib/paid_ruby/types/error.rb +58 -0
- data/lib/paid_ruby/types/order.rb +172 -0
- data/lib/paid_ruby/types/order_line.rb +158 -0
- data/lib/paid_ruby/types/order_line_attribute.rb +83 -0
- data/lib/paid_ruby/types/order_line_attribute_pricing.rb +93 -0
- data/lib/paid_ruby/types/order_line_create.rb +77 -0
- data/lib/paid_ruby/types/price_point.rb +81 -0
- data/lib/paid_ruby/types/pricing.rb +97 -0
- data/lib/paid_ruby/types/pricing_model_type.rb +11 -0
- data/lib/paid_ruby/types/salutation.rb +14 -0
- data/lib/paid_ruby/types/signal.rb +77 -0
- data/lib/paid_ruby/types/tax_exempt_status.rb +11 -0
- data/lib/paid_ruby/types/tier.rb +70 -0
- data/lib/paid_ruby/usage/client.rb +97 -0
- data/lib/paid_ruby.rb +83 -0
- data/lib/requests.rb +166 -0
- data/lib/types_export.rb +28 -0
- 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
|