adyen-ruby-api-library 6.0.0 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -1
- data/README.md +1 -1
- data/docs/checkout.html +2 -2
- data/docs/index.html +2 -2
- data/docs/install-library.html +2 -2
- data/docs/marketpay.html +2 -2
- data/docs/payment.html +2 -2
- data/docs/payout.html +2 -2
- data/docs/recurring.html +2 -2
- data/docs/using-library.html +2 -2
- data/lib/adyen/client.rb +8 -2
- data/lib/adyen/errors.rb +5 -2
- data/lib/adyen/services/checkout.rb +17 -0
- data/lib/adyen/version.rb +1 -1
- data/spec/checkout_spec.rb +32 -0
- data/spec/errors_spec.rb +9 -0
- data/spec/mocks/requests/Checkout/apple_pay_sessions.json +5 -0
- data/spec/mocks/responses/Checkout/apple_pay_sessions.json +3 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2156b9db20964cb7f43be56c19a462ccc091e42fdcecd887c9da04dc880116
|
4
|
+
data.tar.gz: 47cb2a027baa58061a6eb46e5c703ff7bc18b05002e5a7c0c5b9d9e9d68616fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1e4c4a2fd0b91b3e375a66a59910548a9e272beb8940e2ecf6432593e2c14494006d7d6387020245fea48af0f24b50b7803d135db654294e9079c842f818390
|
7
|
+
data.tar.gz: de54e9a6c6da6a49b922d26cb6197651f59f145fef43412bfdf50863097f287d8139dd1647e6efd585d1c08d8dbffaca845f16e0e46ec49334e323f73ade74d1
|
data/.github/CODEOWNERS
CHANGED
@@ -1 +1 @@
|
|
1
|
-
* @crrood @
|
1
|
+
* @crrood @wboereboom @AlexandrosMor @michaelpaul
|
data/README.md
CHANGED
@@ -108,7 +108,7 @@ If you have a feature request, or spotted a bug or a technical problem, [create
|
|
108
108
|
For other questions, [contact our Support Team](https://www.adyen.help/hc/en-us/requests/new?ticket_form_id=360000705420).
|
109
109
|
|
110
110
|
## Licence
|
111
|
-
This repository is available under the [MIT license](https://github.com/Adyen/adyen-ruby-api-library/blob/
|
111
|
+
This repository is available under the [MIT license](https://github.com/Adyen/adyen-ruby-api-library/blob/main/LICENSE).
|
112
112
|
|
113
113
|
## See also
|
114
114
|
* [Example integration](https://github.com/adyen-examples/adyen-rails-online-payments)
|
data/docs/checkout.html
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
|
24
24
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
25
25
|
<ul>
|
26
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
27
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
26
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
27
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
28
28
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
29
29
|
</ul>
|
30
30
|
</header>
|
data/docs/index.html
CHANGED
@@ -21,8 +21,8 @@
|
|
21
21
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
22
22
|
|
23
23
|
<ul>
|
24
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
25
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
24
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
25
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
26
26
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
27
27
|
</ul>
|
28
28
|
</header>
|
data/docs/install-library.html
CHANGED
@@ -25,8 +25,8 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
<ul>
|
28
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
29
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
28
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
29
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
30
30
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
31
31
|
</ul>
|
32
32
|
</header>
|
data/docs/marketpay.html
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
|
24
24
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
25
25
|
<ul>
|
26
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
27
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
26
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
27
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
28
28
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
29
29
|
</ul>
|
30
30
|
</header>
|
data/docs/payment.html
CHANGED
@@ -24,8 +24,8 @@
|
|
24
24
|
|
25
25
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
26
26
|
<ul>
|
27
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
28
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
27
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
28
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
29
29
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
30
30
|
</ul>
|
31
31
|
</header>
|
data/docs/payout.html
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
|
24
24
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
25
25
|
<ul>
|
26
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
27
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
26
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
27
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
28
28
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
29
29
|
</ul>
|
30
30
|
</header>
|
data/docs/recurring.html
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
|
24
24
|
<p class="view"><a href="https://github.com/Adyen/adyen-ruby-api-library">View the Project on GitHub <small>Adyen/adyen-ruby-api-library</small></a></p>
|
25
25
|
<ul>
|
26
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
27
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
26
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
27
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
28
28
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
29
29
|
</ul>
|
30
30
|
</header>
|
data/docs/using-library.html
CHANGED
@@ -25,8 +25,8 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
<ul>
|
28
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/
|
29
|
-
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/
|
28
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/zipball/main">Download <strong>ZIP File</strong></a></li>
|
29
|
+
<li><a href="https://github.com/Adyen/adyen-ruby-api-library/tarball/main">Download <strong>TAR Ball</strong></a></li>
|
30
30
|
<li><a href="https://github.com/Adyen/adyen-ruby-api-library">View On <strong>GitHub</strong></a></li>
|
31
31
|
</ul>
|
32
32
|
</header>
|
data/lib/adyen/client.rb
CHANGED
@@ -104,7 +104,13 @@ module Adyen
|
|
104
104
|
# set auth type based on service
|
105
105
|
case auth_type
|
106
106
|
when "basic"
|
107
|
-
|
107
|
+
if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
|
108
|
+
# for faraday 2.0 and higher
|
109
|
+
faraday.request :authorization, :basic, @ws_user, @ws_password
|
110
|
+
else
|
111
|
+
# for faraday 1.x
|
112
|
+
faraday.basic_auth(@ws_user, @ws_password)
|
113
|
+
end
|
108
114
|
when "api-key"
|
109
115
|
faraday.headers["x-api-key"] = @api_key
|
110
116
|
end
|
@@ -132,7 +138,7 @@ module Adyen
|
|
132
138
|
if action.is_a?(::Hash)
|
133
139
|
if action.fetch(:method) == "get"
|
134
140
|
begin
|
135
|
-
response = conn.get
|
141
|
+
response = conn.get
|
136
142
|
rescue Faraday::ConnectionFailed => connection_error
|
137
143
|
raise connection_error, "Connection to #{url} failed"
|
138
144
|
end
|
data/lib/adyen/errors.rb
CHANGED
@@ -3,7 +3,10 @@ module Adyen
|
|
3
3
|
attr_reader :code, :response, :request, :msg
|
4
4
|
|
5
5
|
def initialize(request = nil, response = nil, msg = nil, code = nil)
|
6
|
-
|
6
|
+
unless request.nil?
|
7
|
+
request = request.is_a?(Hash) ? request : JSON.parse(request, symbolize_names: true)
|
8
|
+
mask_fields(request)
|
9
|
+
end
|
7
10
|
|
8
11
|
# components of formatted error message
|
9
12
|
attributes = {
|
@@ -37,7 +40,7 @@ module Adyen
|
|
37
40
|
]
|
38
41
|
|
39
42
|
# convert to hash if necessary
|
40
|
-
request = request.is_a?(Hash) ? request : JSON.parse(request)
|
43
|
+
request = request.is_a?(Hash) ? request : JSON.parse(request, symbolize_names: true)
|
41
44
|
|
42
45
|
# iterate through request to find fields to mask
|
43
46
|
request.each do |k, v|
|
@@ -67,6 +67,10 @@ module Adyen
|
|
67
67
|
@client.call_adyen_api(@service, action, args[0], args[1], @version)
|
68
68
|
end
|
69
69
|
end
|
70
|
+
|
71
|
+
def apple_pay
|
72
|
+
@apple_pay ||= Adyen::CheckoutApplePay.new(@client, @version)
|
73
|
+
end
|
70
74
|
end
|
71
75
|
|
72
76
|
class CheckoutDetail < Service
|
@@ -130,4 +134,17 @@ module Adyen
|
|
130
134
|
@client.call_adyen_api(@service, action, request, headers, @version)
|
131
135
|
end
|
132
136
|
end
|
137
|
+
|
138
|
+
class CheckoutApplePay < Service
|
139
|
+
def initialize(client, version = DEFAULT_VERSION)
|
140
|
+
@service = "Checkout"
|
141
|
+
@client = client
|
142
|
+
@version = version
|
143
|
+
end
|
144
|
+
|
145
|
+
def sessions(request, headers = {})
|
146
|
+
action = "applePay/sessions"
|
147
|
+
@client.call_adyen_api(@service, action, request, headers, @version)
|
148
|
+
end
|
149
|
+
end
|
133
150
|
end
|
data/lib/adyen/version.rb
CHANGED
data/spec/checkout_spec.rb
CHANGED
@@ -345,6 +345,38 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
|
|
345
345
|
to eq("cancelled")
|
346
346
|
end
|
347
347
|
|
348
|
+
it "makes an applePay/sessions call" do
|
349
|
+
request_body = JSON.parse(json_from_file("mocks/requests/Checkout/apple_pay_sessions.json"))
|
350
|
+
|
351
|
+
response_body = json_from_file("mocks/responses/Checkout/apple_pay_sessions.json")
|
352
|
+
|
353
|
+
url = @shared_values[:client].service_url(@shared_values[:service], "applePay/sessions", @shared_values[:client].checkout.version)
|
354
|
+
WebMock.stub_request(:post, url).
|
355
|
+
with(
|
356
|
+
body: request_body,
|
357
|
+
headers: {
|
358
|
+
"x-api-key" => @shared_values[:client].api_key
|
359
|
+
}
|
360
|
+
).
|
361
|
+
to_return(
|
362
|
+
body: response_body
|
363
|
+
)
|
364
|
+
|
365
|
+
result = @shared_values[:client].checkout.apple_pay.sessions(request_body)
|
366
|
+
response_hash = result.response
|
367
|
+
|
368
|
+
expect(result.status).
|
369
|
+
to eq(200)
|
370
|
+
expect(response_hash).
|
371
|
+
to eq(JSON.parse(response_body))
|
372
|
+
expect(response_hash).
|
373
|
+
to be_a Adyen::HashWithAccessors
|
374
|
+
expect(response_hash).
|
375
|
+
to be_a_kind_of Hash
|
376
|
+
expect(response_hash["data"]).
|
377
|
+
to eq("LARGE_BLOB_HERE")
|
378
|
+
end
|
379
|
+
|
348
380
|
it "makes a sessions call" do
|
349
381
|
request_body = JSON.parse(json_from_file("mocks/requests/Checkout/sessions.json"))
|
350
382
|
|
data/spec/errors_spec.rb
CHANGED
@@ -43,5 +43,14 @@ RSpec.describe Adyen::AdyenError do
|
|
43
43
|
it 'masks CVC when logging request in errors' do
|
44
44
|
expect(Adyen::AdyenError.new(@shared_values[:request], 'response', 'message', 'code').request[:paymentMethod][:cvc]).to eq('***')
|
45
45
|
end
|
46
|
+
|
47
|
+
context 'when request is string' do
|
48
|
+
it 'masks card number when logging request in errors' do
|
49
|
+
expect(Adyen::AdyenError.new(JSON.generate(@shared_values[:request]), 'response', 'message', 'code').request[:paymentMethod][:number]).to eq('411111******1111')
|
50
|
+
end
|
51
|
+
it 'masks CVC when logging request in errors' do
|
52
|
+
expect(Adyen::AdyenError.new(JSON.generate(@shared_values[:request]), 'response', 'message', 'code').request[:paymentMethod][:cvc]).to eq('***')
|
53
|
+
end
|
54
|
+
end
|
46
55
|
end
|
47
56
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adyen-ruby-api-library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- spec/mocks/requests/Account/upload_document.json
|
154
154
|
- spec/mocks/requests/BinLookup/get_3ds_availability.json
|
155
155
|
- spec/mocks/requests/BinLookup/get_cost_estimate.json
|
156
|
+
- spec/mocks/requests/Checkout/apple_pay_sessions.json
|
156
157
|
- spec/mocks/requests/Checkout/orders.json
|
157
158
|
- spec/mocks/requests/Checkout/orders_cancel.json
|
158
159
|
- spec/mocks/requests/Checkout/origin_keys.json
|
@@ -229,6 +230,7 @@ files:
|
|
229
230
|
- spec/mocks/responses/Account/upload_document.json
|
230
231
|
- spec/mocks/responses/BinLookup/get_3ds_availability.json
|
231
232
|
- spec/mocks/responses/BinLookup/get_cost_estimate.json
|
233
|
+
- spec/mocks/responses/Checkout/apple_pay_sessions.json
|
232
234
|
- spec/mocks/responses/Checkout/get-payment-link.json
|
233
235
|
- spec/mocks/responses/Checkout/orders.json
|
234
236
|
- spec/mocks/responses/Checkout/orders_cancel.json
|
@@ -318,7 +320,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
318
320
|
- !ruby/object:Gem::Version
|
319
321
|
version: '0'
|
320
322
|
requirements: []
|
321
|
-
rubygems_version: 3.2
|
323
|
+
rubygems_version: 3.1.2
|
322
324
|
signing_key:
|
323
325
|
specification_version: 4
|
324
326
|
summary: Official Adyen Ruby API Library
|