processout 2.24.0 → 2.26.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.
@@ -0,0 +1,150 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class ProjectSFTPSettings
10
+
11
+ attr_reader :endpoint
12
+ attr_reader :username
13
+ attr_reader :password
14
+ attr_reader :private_key
15
+
16
+
17
+ def endpoint=(val)
18
+ @endpoint = val
19
+ end
20
+
21
+ def username=(val)
22
+ @username = val
23
+ end
24
+
25
+ def password=(val)
26
+ @password = val
27
+ end
28
+
29
+ def private_key=(val)
30
+ @private_key = val
31
+ end
32
+
33
+
34
+ # Initializes the ProjectSFTPSettings object
35
+ # Params:
36
+ # +client+:: +ProcessOut+ client instance
37
+ # +data+:: data that can be used to fill the object
38
+ def initialize(client, data = {})
39
+ @client = client
40
+
41
+ self.endpoint = data.fetch(:endpoint, nil)
42
+ self.username = data.fetch(:username, nil)
43
+ self.password = data.fetch(:password, nil)
44
+ self.private_key = data.fetch(:private_key, nil)
45
+
46
+ end
47
+
48
+ # Create a new ProjectSFTPSettings using the current client
49
+ def new(data = {})
50
+ ProjectSFTPSettings.new(@client, data)
51
+ end
52
+
53
+ # Overrides the JSON marshaller to only send the fields we want
54
+ def to_json(options)
55
+ {
56
+ "endpoint": self.endpoint,
57
+ "username": self.username,
58
+ "password": self.password,
59
+ "private_key": self.private_key,
60
+ }.to_json
61
+ end
62
+
63
+ # Fills the object with data coming from the API
64
+ # Params:
65
+ # +data+:: +Hash+ of data coming from the API
66
+ def fill_with_data(data)
67
+ if data.nil?
68
+ return self
69
+ end
70
+ if data.include? "endpoint"
71
+ self.endpoint = data["endpoint"]
72
+ end
73
+ if data.include? "username"
74
+ self.username = data["username"]
75
+ end
76
+ if data.include? "password"
77
+ self.password = data["password"]
78
+ end
79
+ if data.include? "private_key"
80
+ self.private_key = data["private_key"]
81
+ end
82
+
83
+ self
84
+ end
85
+
86
+ # Prefills the object with the data passed as parameters
87
+ # Params:
88
+ # +data+:: +Hash+ of data
89
+ def prefill(data)
90
+ if data.nil?
91
+ return self
92
+ end
93
+ self.endpoint = data.fetch(:endpoint, self.endpoint)
94
+ self.username = data.fetch(:username, self.username)
95
+ self.password = data.fetch(:password, self.password)
96
+ self.private_key = data.fetch(:private_key, self.private_key)
97
+
98
+ self
99
+ end
100
+
101
+ # Save the SFTP settings for the project.
102
+ # Params:
103
+ # +id+:: ID of the project
104
+ # +options+:: +Hash+ of options
105
+ def save_sftp_settings(id, options = {})
106
+ self.prefill(options)
107
+
108
+ request = Request.new(@client)
109
+ path = "/projects/" + CGI.escape(id) + "/sftp-settings"
110
+ data = {
111
+ "endpoint" => @endpoint,
112
+ "username" => @username,
113
+ "password" => @password,
114
+ "private_key" => @private_key
115
+ }
116
+
117
+ response = Response.new(request.put(path, data, options))
118
+ return_values = Array.new
119
+
120
+ return_values.push(response.success)
121
+
122
+
123
+ return_values[0]
124
+ end
125
+
126
+ # Delete the SFTP settings for the project.
127
+ # Params:
128
+ # +id+:: ID of the project
129
+ # +options+:: +Hash+ of options
130
+ def delete_sftp_settings(id, options = {})
131
+ self.prefill(options)
132
+
133
+ request = Request.new(@client)
134
+ path = "/projects/" + CGI.escape(id) + "/sftp-settings"
135
+ data = {
136
+
137
+ }
138
+
139
+ response = Response.new(request.delete(path, data, options))
140
+ return_values = Array.new
141
+
142
+ return_values.push(response.success)
143
+
144
+
145
+ return_values[0]
146
+ end
147
+
148
+
149
+ end
150
+ end
@@ -187,6 +187,32 @@ module ProcessOut
187
187
  self
188
188
  end
189
189
 
190
+ # Create a refund for an invoice.
191
+ # Params:
192
+ # +invoice_id+:: ID of the invoice
193
+ # +options+:: +Hash+ of options
194
+ def create_for_invoice(invoice_id, options = {})
195
+ self.prefill(options)
196
+
197
+ request = Request.new(@client)
198
+ path = "/invoices/" + CGI.escape(invoice_id) + "/refunds"
199
+ data = {
200
+ "amount" => @amount,
201
+ "reason" => @reason,
202
+ "information" => @information,
203
+ "invoice_detail_ids" => @invoice_detail_ids,
204
+ "metadata" => options.fetch(:metadata, nil)
205
+ }
206
+
207
+ response = Response.new(request.post(path, data, options))
208
+ return_values = Array.new
209
+
210
+ return_values.push(response.success)
211
+
212
+
213
+ return_values[0]
214
+ end
215
+
190
216
  # Get the transaction's refunds.
191
217
  # Params:
192
218
  # +transaction_id+:: ID of the transaction
@@ -37,6 +37,8 @@ module ProcessOut
37
37
  attr_reader :refunded_amount_local
38
38
  attr_reader :available_amount
39
39
  attr_reader :available_amount_local
40
+ attr_reader :voided_amount
41
+ attr_reader :voided_amount_local
40
42
  attr_reader :currency
41
43
  attr_reader :error_code
42
44
  attr_reader :error_message
@@ -67,6 +69,8 @@ module ProcessOut
67
69
  attr_reader :initial_scheme_transaction_id
68
70
  attr_reader :scheme_id
69
71
  attr_reader :payment_type
72
+ attr_reader :native_apm
73
+ attr_reader :external_details
70
74
 
71
75
 
72
76
  def id=(val)
@@ -313,6 +317,14 @@ module ProcessOut
313
317
  @available_amount_local = val
314
318
  end
315
319
 
320
+ def voided_amount=(val)
321
+ @voided_amount = val
322
+ end
323
+
324
+ def voided_amount_local=(val)
325
+ @voided_amount_local = val
326
+ end
327
+
316
328
  def currency=(val)
317
329
  @currency = val
318
330
  end
@@ -445,6 +457,27 @@ module ProcessOut
445
457
  @payment_type = val
446
458
  end
447
459
 
460
+ def native_apm=(val)
461
+ if val.nil?
462
+ @native_apm = val
463
+ return
464
+ end
465
+
466
+ if val.instance_of? NativeAPMResponse
467
+ @native_apm = val
468
+ else
469
+ obj = NativeAPMResponse.new(@client)
470
+ obj.fill_with_data(val)
471
+ @native_apm = obj
472
+ end
473
+
474
+ end
475
+
476
+ def external_details=(val)
477
+ @external_details = val
478
+
479
+ end
480
+
448
481
 
449
482
  # Initializes the Transaction object
450
483
  # Params:
@@ -482,6 +515,8 @@ module ProcessOut
482
515
  self.refunded_amount_local = data.fetch(:refunded_amount_local, nil)
483
516
  self.available_amount = data.fetch(:available_amount, nil)
484
517
  self.available_amount_local = data.fetch(:available_amount_local, nil)
518
+ self.voided_amount = data.fetch(:voided_amount, nil)
519
+ self.voided_amount_local = data.fetch(:voided_amount_local, nil)
485
520
  self.currency = data.fetch(:currency, nil)
486
521
  self.error_code = data.fetch(:error_code, nil)
487
522
  self.error_message = data.fetch(:error_message, nil)
@@ -512,6 +547,8 @@ module ProcessOut
512
547
  self.initial_scheme_transaction_id = data.fetch(:initial_scheme_transaction_id, nil)
513
548
  self.scheme_id = data.fetch(:scheme_id, nil)
514
549
  self.payment_type = data.fetch(:payment_type, nil)
550
+ self.native_apm = data.fetch(:native_apm, nil)
551
+ self.external_details = data.fetch(:external_details, nil)
515
552
 
516
553
  end
517
554
 
@@ -552,6 +589,8 @@ module ProcessOut
552
589
  "refunded_amount_local": self.refunded_amount_local,
553
590
  "available_amount": self.available_amount,
554
591
  "available_amount_local": self.available_amount_local,
592
+ "voided_amount": self.voided_amount,
593
+ "voided_amount_local": self.voided_amount_local,
555
594
  "currency": self.currency,
556
595
  "error_code": self.error_code,
557
596
  "error_message": self.error_message,
@@ -582,6 +621,8 @@ module ProcessOut
582
621
  "initial_scheme_transaction_id": self.initial_scheme_transaction_id,
583
622
  "scheme_id": self.scheme_id,
584
623
  "payment_type": self.payment_type,
624
+ "native_apm": self.native_apm,
625
+ "external_details": self.external_details,
585
626
  }.to_json
586
627
  end
587
628
 
@@ -679,6 +720,12 @@ module ProcessOut
679
720
  if data.include? "available_amount_local"
680
721
  self.available_amount_local = data["available_amount_local"]
681
722
  end
723
+ if data.include? "voided_amount"
724
+ self.voided_amount = data["voided_amount"]
725
+ end
726
+ if data.include? "voided_amount_local"
727
+ self.voided_amount_local = data["voided_amount_local"]
728
+ end
682
729
  if data.include? "currency"
683
730
  self.currency = data["currency"]
684
731
  end
@@ -769,6 +816,12 @@ module ProcessOut
769
816
  if data.include? "payment_type"
770
817
  self.payment_type = data["payment_type"]
771
818
  end
819
+ if data.include? "native_apm"
820
+ self.native_apm = data["native_apm"]
821
+ end
822
+ if data.include? "external_details"
823
+ self.external_details = data["external_details"]
824
+ end
772
825
 
773
826
  self
774
827
  end
@@ -809,6 +862,8 @@ module ProcessOut
809
862
  self.refunded_amount_local = data.fetch(:refunded_amount_local, self.refunded_amount_local)
810
863
  self.available_amount = data.fetch(:available_amount, self.available_amount)
811
864
  self.available_amount_local = data.fetch(:available_amount_local, self.available_amount_local)
865
+ self.voided_amount = data.fetch(:voided_amount, self.voided_amount)
866
+ self.voided_amount_local = data.fetch(:voided_amount_local, self.voided_amount_local)
812
867
  self.currency = data.fetch(:currency, self.currency)
813
868
  self.error_code = data.fetch(:error_code, self.error_code)
814
869
  self.error_message = data.fetch(:error_message, self.error_message)
@@ -839,6 +894,8 @@ module ProcessOut
839
894
  self.initial_scheme_transaction_id = data.fetch(:initial_scheme_transaction_id, self.initial_scheme_transaction_id)
840
895
  self.scheme_id = data.fetch(:scheme_id, self.scheme_id)
841
896
  self.payment_type = data.fetch(:payment_type, self.payment_type)
897
+ self.native_apm = data.fetch(:native_apm, self.native_apm)
898
+ self.external_details = data.fetch(:external_details, self.external_details)
842
899
 
843
900
  self
844
901
  end
@@ -0,0 +1,70 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class UnsupportedFeatureBypass
10
+
11
+ attr_reader :incremental_authorization
12
+
13
+
14
+ def incremental_authorization=(val)
15
+ @incremental_authorization = val
16
+ end
17
+
18
+
19
+ # Initializes the UnsupportedFeatureBypass object
20
+ # Params:
21
+ # +client+:: +ProcessOut+ client instance
22
+ # +data+:: data that can be used to fill the object
23
+ def initialize(client, data = {})
24
+ @client = client
25
+
26
+ self.incremental_authorization = data.fetch(:incremental_authorization, nil)
27
+
28
+ end
29
+
30
+ # Create a new UnsupportedFeatureBypass using the current client
31
+ def new(data = {})
32
+ UnsupportedFeatureBypass.new(@client, data)
33
+ end
34
+
35
+ # Overrides the JSON marshaller to only send the fields we want
36
+ def to_json(options)
37
+ {
38
+ "incremental_authorization": self.incremental_authorization,
39
+ }.to_json
40
+ end
41
+
42
+ # Fills the object with data coming from the API
43
+ # Params:
44
+ # +data+:: +Hash+ of data coming from the API
45
+ def fill_with_data(data)
46
+ if data.nil?
47
+ return self
48
+ end
49
+ if data.include? "incremental_authorization"
50
+ self.incremental_authorization = data["incremental_authorization"]
51
+ end
52
+
53
+ self
54
+ end
55
+
56
+ # Prefills the object with the data passed as parameters
57
+ # Params:
58
+ # +data+:: +Hash+ of data
59
+ def prefill(data)
60
+ if data.nil?
61
+ return self
62
+ end
63
+ self.incremental_authorization = data.fetch(:incremental_authorization, self.incremental_authorization)
64
+
65
+ self
66
+ end
67
+
68
+
69
+ end
70
+ end
@@ -1,3 +1,3 @@
1
1
  module ProcessOut
2
- VERSION = "2.24.0"
2
+ VERSION = "2.26.0"
3
3
  end
data/lib/processout.rb CHANGED
@@ -12,18 +12,23 @@ require "processout/card"
12
12
  require "processout/card_information"
13
13
  require "processout/coupon"
14
14
  require "processout/customer"
15
+ require "processout/customer_phone"
15
16
  require "processout/token"
16
17
  require "processout/discount"
17
18
  require "processout/event"
18
19
  require "processout/gateway"
19
20
  require "processout/gateway_configuration"
20
21
  require "processout/invoice"
22
+ require "processout/native_apm_request"
23
+ require "processout/native_apm_parameter_value"
21
24
  require "processout/invoice_tax"
22
25
  require "processout/invoice_external_fraud_tools"
23
26
  require "processout/invoice_risk"
24
27
  require "processout/invoice_device"
25
28
  require "processout/invoice_shipping"
29
+ require "processout/invoice_shipping_phone"
26
30
  require "processout/invoice_billing"
31
+ require "processout/unsupported_feature_bypass"
27
32
  require "processout/invoice_detail"
28
33
  require "processout/customer_action"
29
34
  require "processout/dunning_action"
@@ -32,9 +37,13 @@ require "processout/payout_item"
32
37
  require "processout/plan"
33
38
  require "processout/product"
34
39
  require "processout/project"
40
+ require "processout/project_sftp_settings"
35
41
  require "processout/refund"
36
42
  require "processout/subscription"
37
43
  require "processout/transaction"
44
+ require "processout/native_apm_response"
45
+ require "processout/native_apm_parameter_definition"
46
+ require "processout/native_apm_parameter_value_definition"
38
47
  require "processout/three_ds"
39
48
  require "processout/payment_data_three_ds_request"
40
49
  require "processout/payment_data_network_authentication"
@@ -42,6 +51,12 @@ require "processout/payment_data_three_ds_authentication"
42
51
  require "processout/transaction_operation"
43
52
  require "processout/webhook"
44
53
  require "processout/webhook_endpoint"
54
+ require "processout/error_codes"
55
+ require "processout/category_error_codes"
56
+ require "processout/native_apm_transaction_details_gateway"
57
+ require "processout/native_apm_transaction_details_invoice"
58
+ require "processout/native_apm_transaction_details"
59
+ require "processout/invoices_process_native_payment_response"
45
60
 
46
61
  module ProcessOut
47
62
  class Client
@@ -114,6 +129,11 @@ module ProcessOut
114
129
  obj = Customer.new(self, data)
115
130
  end
116
131
 
132
+ # Create a new CustomerPhone instance
133
+ def customer_phone(data = {})
134
+ obj = CustomerPhone.new(self, data)
135
+ end
136
+
117
137
  # Create a new Token instance
118
138
  def token(data = {})
119
139
  obj = Token.new(self, data)
@@ -144,6 +164,16 @@ module ProcessOut
144
164
  obj = Invoice.new(self, data)
145
165
  end
146
166
 
167
+ # Create a new NativeAPMRequest instance
168
+ def native_apm_request(data = {})
169
+ obj = NativeAPMRequest.new(self, data)
170
+ end
171
+
172
+ # Create a new NativeAPMParameterValue instance
173
+ def native_apm_parameter_value(data = {})
174
+ obj = NativeAPMParameterValue.new(self, data)
175
+ end
176
+
147
177
  # Create a new InvoiceTax instance
148
178
  def invoice_tax(data = {})
149
179
  obj = InvoiceTax.new(self, data)
@@ -169,11 +199,21 @@ module ProcessOut
169
199
  obj = InvoiceShipping.new(self, data)
170
200
  end
171
201
 
202
+ # Create a new InvoiceShippingPhone instance
203
+ def invoice_shipping_phone(data = {})
204
+ obj = InvoiceShippingPhone.new(self, data)
205
+ end
206
+
172
207
  # Create a new InvoiceBilling instance
173
208
  def invoice_billing(data = {})
174
209
  obj = InvoiceBilling.new(self, data)
175
210
  end
176
211
 
212
+ # Create a new UnsupportedFeatureBypass instance
213
+ def unsupported_feature_bypass(data = {})
214
+ obj = UnsupportedFeatureBypass.new(self, data)
215
+ end
216
+
177
217
  # Create a new InvoiceDetail instance
178
218
  def invoice_detail(data = {})
179
219
  obj = InvoiceDetail.new(self, data)
@@ -214,6 +254,11 @@ module ProcessOut
214
254
  obj = Project.new(self, data)
215
255
  end
216
256
 
257
+ # Create a new ProjectSFTPSettings instance
258
+ def project_sftp_settings(data = {})
259
+ obj = ProjectSFTPSettings.new(self, data)
260
+ end
261
+
217
262
  # Create a new Refund instance
218
263
  def refund(data = {})
219
264
  obj = Refund.new(self, data)
@@ -229,6 +274,21 @@ module ProcessOut
229
274
  obj = Transaction.new(self, data)
230
275
  end
231
276
 
277
+ # Create a new NativeAPMResponse instance
278
+ def native_apm_response(data = {})
279
+ obj = NativeAPMResponse.new(self, data)
280
+ end
281
+
282
+ # Create a new NativeAPMParameterDefinition instance
283
+ def native_apm_parameter_definition(data = {})
284
+ obj = NativeAPMParameterDefinition.new(self, data)
285
+ end
286
+
287
+ # Create a new NativeAPMParameterValueDefinition instance
288
+ def native_apm_parameter_value_definition(data = {})
289
+ obj = NativeAPMParameterValueDefinition.new(self, data)
290
+ end
291
+
232
292
  # Create a new ThreeDS instance
233
293
  def three_ds(data = {})
234
294
  obj = ThreeDS.new(self, data)
@@ -264,6 +324,36 @@ module ProcessOut
264
324
  obj = WebhookEndpoint.new(self, data)
265
325
  end
266
326
 
327
+ # Create a new ErrorCodes instance
328
+ def error_codes(data = {})
329
+ obj = ErrorCodes.new(self, data)
330
+ end
331
+
332
+ # Create a new CategoryErrorCodes instance
333
+ def category_error_codes(data = {})
334
+ obj = CategoryErrorCodes.new(self, data)
335
+ end
336
+
337
+ # Create a new NativeAPMTransactionDetailsGateway instance
338
+ def native_apm_transaction_details_gateway(data = {})
339
+ obj = NativeAPMTransactionDetailsGateway.new(self, data)
340
+ end
341
+
342
+ # Create a new NativeAPMTransactionDetailsInvoice instance
343
+ def native_apm_transaction_details_invoice(data = {})
344
+ obj = NativeAPMTransactionDetailsInvoice.new(self, data)
345
+ end
346
+
347
+ # Create a new NativeAPMTransactionDetails instance
348
+ def native_apm_transaction_details(data = {})
349
+ obj = NativeAPMTransactionDetails.new(self, data)
350
+ end
351
+
352
+ # Create a new InvoicesProcessNativePaymentResponse instance
353
+ def invoices_process_native_payment_response(data = {})
354
+ obj = InvoicesProcessNativePaymentResponse.new(self, data)
355
+ end
356
+
267
357
 
268
358
  end
269
359
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processout
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.0
4
+ version: 2.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel HUEZ
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-12 00:00:00.000000000 Z
11
+ date: 2024-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -59,6 +59,9 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
+ - ".github/CODEOWNERS"
63
+ - ".github/stale.yml"
64
+ - ".github/workflows/ci.yaml"
62
65
  - ".gitignore"
63
66
  - ".rspec"
64
67
  - ".travis.yml"
@@ -81,11 +84,14 @@ files:
81
84
  - lib/processout/balances.rb
82
85
  - lib/processout/card.rb
83
86
  - lib/processout/card_information.rb
87
+ - lib/processout/category_error_codes.rb
84
88
  - lib/processout/coupon.rb
85
89
  - lib/processout/customer.rb
86
90
  - lib/processout/customer_action.rb
91
+ - lib/processout/customer_phone.rb
87
92
  - lib/processout/discount.rb
88
93
  - lib/processout/dunning_action.rb
94
+ - lib/processout/error_codes.rb
89
95
  - lib/processout/errors/authentication_error.rb
90
96
  - lib/processout/errors/generic_error.rb
91
97
  - lib/processout/errors/internal_error.rb
@@ -102,7 +108,17 @@ files:
102
108
  - lib/processout/invoice_external_fraud_tools.rb
103
109
  - lib/processout/invoice_risk.rb
104
110
  - lib/processout/invoice_shipping.rb
111
+ - lib/processout/invoice_shipping_phone.rb
105
112
  - lib/processout/invoice_tax.rb
113
+ - lib/processout/invoices_process_native_payment_response.rb
114
+ - lib/processout/native_apm_parameter_definition.rb
115
+ - lib/processout/native_apm_parameter_value.rb
116
+ - lib/processout/native_apm_parameter_value_definition.rb
117
+ - lib/processout/native_apm_request.rb
118
+ - lib/processout/native_apm_response.rb
119
+ - lib/processout/native_apm_transaction_details.rb
120
+ - lib/processout/native_apm_transaction_details_gateway.rb
121
+ - lib/processout/native_apm_transaction_details_invoice.rb
106
122
  - lib/processout/networking/request.rb
107
123
  - lib/processout/networking/response.rb
108
124
  - lib/processout/payment_data_network_authentication.rb
@@ -113,12 +129,14 @@ files:
113
129
  - lib/processout/plan.rb
114
130
  - lib/processout/product.rb
115
131
  - lib/processout/project.rb
132
+ - lib/processout/project_sftp_settings.rb
116
133
  - lib/processout/refund.rb
117
134
  - lib/processout/subscription.rb
118
135
  - lib/processout/three_ds.rb
119
136
  - lib/processout/token.rb
120
137
  - lib/processout/transaction.rb
121
138
  - lib/processout/transaction_operation.rb
139
+ - lib/processout/unsupported_feature_bypass.rb
122
140
  - lib/processout/version.rb
123
141
  - lib/processout/webhook.rb
124
142
  - lib/processout/webhook_endpoint.rb