bambora-client 0.6.0 → 0.7.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 +4 -4
- data/.editorconfig +10 -0
- data/.github/workflows/gempush.yml +2 -2
- data/.github/workflows/linter.yml +2 -4
- data/.github/workflows/ruby.yml +3 -5
- data/.rubocop.yml +4 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +9 -0
- data/bambora-client.gemspec +8 -8
- data/lib/bambora/adapters/query_string_response.rb +1 -1
- data/lib/bambora/bank/adapters/payment_profile_response.rb +2 -2
- data/lib/bambora/bank/batch_report_resource.rb +3 -5
- data/lib/bambora/bank/builders/payment_profile_params.rb +2 -2
- data/lib/bambora/client/version.rb +1 -1
- data/lib/bambora/client.rb +2 -1
- data/lib/bambora/credentials.rb +12 -0
- data/lib/bambora/rest/json_client.rb +1 -1
- metadata +21 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f352f6b69779ed40aec8656bac2ef2ab59e3f9f2c449ded71fd2b927521f33b
|
4
|
+
data.tar.gz: d156be5c5a47ea734231bde86e1664b21f2f1ee9abdb5334b0c416d3f2139259
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f683ea503ba51055b1526f97f893d83a87f75f336b4deedd09b779a6b739194a31cc8d280c66cf0be4576a356ddf9e48263bc42fdae52ee684452015a931f7ef
|
7
|
+
data.tar.gz: 3700fddc9d722bbbe240f3df94d2aab8ffd7f6a800fa62245993e04c45207d48f32370224cd3d9c7ebd664ed5c0da8d5b57af4d76a06cef992e2767c49018c01
|
data/.editorconfig
ADDED
@@ -18,9 +18,7 @@ jobs:
|
|
18
18
|
${{ runner.os }}-gem-
|
19
19
|
- name: Setup ruby
|
20
20
|
uses: ruby/setup-ruby@v1
|
21
|
-
-
|
22
|
-
|
23
|
-
bundle config path vendor/bundle
|
24
|
-
bundle install --jobs 4 --retry 3
|
21
|
+
- name: Install dependencies
|
22
|
+
run: bundle install
|
25
23
|
- name: Rubocop checks
|
26
24
|
run: bundle exec rubocop
|
data/.github/workflows/ruby.yml
CHANGED
@@ -8,7 +8,7 @@ jobs:
|
|
8
8
|
runs-on: ubuntu-latest
|
9
9
|
strategy:
|
10
10
|
matrix:
|
11
|
-
ruby: ['
|
11
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
12
12
|
name: Ruby ${{ matrix.ruby }} Test
|
13
13
|
steps:
|
14
14
|
- uses: actions/checkout@master
|
@@ -25,10 +25,8 @@ jobs:
|
|
25
25
|
uses: ruby/setup-ruby@v1
|
26
26
|
with:
|
27
27
|
ruby-version: ${{ matrix.ruby }}
|
28
|
-
-
|
29
|
-
|
30
|
-
bundle config path vendor/bundle
|
31
|
-
bundle install --jobs 4 --retry 3
|
28
|
+
- name: Install dependencies
|
29
|
+
run: bundle install
|
32
30
|
- name: Run Tests
|
33
31
|
run: |
|
34
32
|
bundle exec rake spec
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 0.7.0 (2024-02-06)
|
2
|
+
|
3
|
+
- Drop support for Ruby 2
|
4
|
+
- Updating minimum Ruby version to Ruby 3.0.5
|
5
|
+
- Add test support for Ruby 3.1, 3.2, 3.3
|
6
|
+
- Updated Rubocop to enforce 3.0.x conventions
|
7
|
+
- Linting fixes
|
8
|
+
- Update `BatchReportResource#batch_report_body` to allow `sub merchant id` to be received from `Bambora::Client` or `elements`
|
9
|
+
|
1
10
|
## 0.6.0 (2023-05-02)
|
2
11
|
|
3
12
|
- Updating minimum Ruby version to Ruby 2.7.7
|
data/bambora-client.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'bambora/client/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'bambora-client'
|
8
8
|
spec.version = Bambora::Client::VERSION
|
9
|
-
spec.authors = ['
|
10
|
-
spec.email = ['
|
9
|
+
spec.authors = ['HiMama']
|
10
|
+
spec.email = ['tech@himama.com']
|
11
11
|
|
12
12
|
spec.summary = 'A thread-safe client for the Bambora/Beanstream API.'
|
13
13
|
spec.description = 'The official beanstream-ruby gem is not thread-safe. This thread-safe client works in '\
|
@@ -37,20 +37,20 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
38
|
spec.require_paths = ['lib']
|
39
39
|
|
40
|
-
spec.required_ruby_version = '>=
|
40
|
+
spec.required_ruby_version = '>= 3.0.5'
|
41
41
|
|
42
42
|
spec.add_dependency 'faraday', '~> 2.0.1'
|
43
|
-
spec.add_dependency 'faraday-excon'
|
44
|
-
spec.add_dependency 'faraday-multipart'
|
43
|
+
spec.add_dependency 'faraday-excon', '~> 2.1.0'
|
44
|
+
spec.add_dependency 'faraday-multipart', '~> 1.0.0'
|
45
45
|
spec.add_dependency 'gyoku', '~> 1.0'
|
46
46
|
spec.add_dependency 'multiparty', '~> 0'
|
47
47
|
|
48
48
|
spec.add_development_dependency 'bundler', '~> 2'
|
49
|
-
spec.add_development_dependency 'pry', '~> 0.
|
50
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.
|
49
|
+
spec.add_development_dependency 'pry', '~> 0.14.0'
|
50
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.8.0'
|
51
51
|
spec.add_development_dependency 'rake', '~> 13.0'
|
52
52
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
53
53
|
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
|
54
|
-
spec.add_development_dependency 'rubocop', '~>
|
54
|
+
spec.add_development_dependency 'rubocop', '~> 1.12.0'
|
55
55
|
spec.add_development_dependency 'webmock', '~> 3.7'
|
56
56
|
end
|
@@ -8,7 +8,7 @@ module Bambora
|
|
8
8
|
parsed_response = super
|
9
9
|
return error_response if parsed_response.values.flatten.empty? # We didn't get a query string back.
|
10
10
|
|
11
|
-
parsed_response.
|
11
|
+
parsed_response.transform_values { |val| val.length == 1 ? val.first : val }
|
12
12
|
end
|
13
13
|
|
14
14
|
private
|
@@ -56,16 +56,14 @@ module Bambora
|
|
56
56
|
response = client.post(path: sub_path, body: batch_report_body(report_data))
|
57
57
|
|
58
58
|
response = ensure_record_key_exists(response)
|
59
|
-
|
60
|
-
|
61
|
-
response
|
59
|
+
add_messages_to_response(response)
|
62
60
|
end
|
63
61
|
|
64
62
|
private
|
65
63
|
|
66
64
|
def ensure_record_key_exists(response)
|
67
65
|
# bambora can return null or empty record results, fill it in for consistency
|
68
|
-
response
|
66
|
+
response[:response][:record] = [] if response.dig(:response, :record).nil?
|
69
67
|
|
70
68
|
response
|
71
69
|
end
|
@@ -83,7 +81,7 @@ module Bambora
|
|
83
81
|
merchant_id: client.merchant_id,
|
84
82
|
pass_code: api_key,
|
85
83
|
sub_merchant_id: client.sub_merchant_id,
|
86
|
-
)
|
84
|
+
).compact
|
87
85
|
end
|
88
86
|
end
|
89
87
|
end
|
data/lib/bambora/client.rb
CHANGED
@@ -12,6 +12,7 @@ require 'gyoku' # XML Builder
|
|
12
12
|
require 'multiparty' # Multipart/mixed requests
|
13
13
|
|
14
14
|
require 'bambora/client/version'
|
15
|
+
require 'bambora/credentials'
|
15
16
|
|
16
17
|
# Adapters
|
17
18
|
require 'bambora/adapters/response'
|
@@ -163,7 +164,7 @@ module Bambora
|
|
163
164
|
#
|
164
165
|
# @param api_key [String] API key for the bank profiles endpoint.
|
165
166
|
#
|
166
|
-
# @return [Bambora::Bank::
|
167
|
+
# @return [Bambora::Bank::BatchReportResource]
|
167
168
|
def batch_reports(api_key:)
|
168
169
|
@batch_reports = Bambora::Bank::BatchReportResource.new(
|
169
170
|
client: xml_client,
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bambora
|
4
|
+
class Credentials
|
5
|
+
attr_reader :merchant_id, :reporting_passcode
|
6
|
+
|
7
|
+
def initialize(options = {})
|
8
|
+
@merchant_id = options[:merchant_id]
|
9
|
+
@reporting_passcode = options[:reporting_passcode]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -30,7 +30,7 @@ module Bambora
|
|
30
30
|
# @param api_key [String] Indicating the API Key to be used with the request.
|
31
31
|
#
|
32
32
|
# @return [Hash] Indicating success or failure of the operation.
|
33
|
-
def get(path:, params: nil
|
33
|
+
def get(path:, api_key:, params: nil)
|
34
34
|
parse_response_body(
|
35
35
|
super(path: path, params: params, headers: build_headers(api_key: api_key)),
|
36
36
|
).to_h
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bambora-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- HiMama
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -28,30 +28,30 @@ dependencies:
|
|
28
28
|
name: faraday-excon
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday-multipart
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.0.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.0.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: gyoku
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
103
|
+
version: 0.14.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
110
|
+
version: 0.14.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: pry-byebug
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 3.8.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 3.8.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rake
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 1.12.0
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: 1.12.0
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: webmock
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,12 +195,12 @@ dependencies:
|
|
195
195
|
description: The official beanstream-ruby gem is not thread-safe. This thread-safe
|
196
196
|
client works in environments like Sidekiq and Puma.
|
197
197
|
email:
|
198
|
-
- hello@cassidy.codes
|
199
198
|
- tech@himama.com
|
200
199
|
executables: []
|
201
200
|
extensions: []
|
202
201
|
extra_rdoc_files: []
|
203
202
|
files:
|
203
|
+
- ".editorconfig"
|
204
204
|
- ".github/workflows/gempush.yml"
|
205
205
|
- ".github/workflows/linter.yml"
|
206
206
|
- ".github/workflows/ruby.yml"
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- lib/bambora/builders/xml_request_body.rb
|
233
233
|
- lib/bambora/client.rb
|
234
234
|
- lib/bambora/client/version.rb
|
235
|
+
- lib/bambora/credentials.rb
|
235
236
|
- lib/bambora/factories/response_adapter_factory.rb
|
236
237
|
- lib/bambora/rest/batch_payment_file_upload_client.rb
|
237
238
|
- lib/bambora/rest/client.rb
|
@@ -257,14 +258,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
257
258
|
requirements:
|
258
259
|
- - ">="
|
259
260
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
261
|
+
version: 3.0.5
|
261
262
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
262
263
|
requirements:
|
263
264
|
- - ">="
|
264
265
|
- !ruby/object:Gem::Version
|
265
266
|
version: '0'
|
266
267
|
requirements: []
|
267
|
-
rubygems_version: 3.
|
268
|
+
rubygems_version: 3.5.3
|
268
269
|
signing_key:
|
269
270
|
specification_version: 4
|
270
271
|
summary: A thread-safe client for the Bambora/Beanstream API.
|