genesis_ruby 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88fa7a15b9a49833d8de193195478d25730cd08832a9f1c77a9e8029bead7fe7
4
- data.tar.gz: 17a9e30b42dc026cd920e7be4d5983b0631baad23655bf2703b28b92c7f61d04
3
+ metadata.gz: d7220a925cd5f4162c331e8f76df937b25d94c61ba2b00ffa2c0e658a9555a23
4
+ data.tar.gz: b24aece0771f858eeed93a62ebb8a6ad2b1751d85f30b72c98ed647ae3b17f9d
5
5
  SHA512:
6
- metadata.gz: 1c7ea66d38e6ce58bf8a9560ade34eff61013a580e2af31f96164482891738874a70c3d481fcf4ab19158b5105003df849e6f145c1dbf1e1d46ddb405fd48134
7
- data.tar.gz: 836820c824e0eb854e9b7c22eb95cfdfcdf990f4f8c0362a77ff6935e28c7fbbaeb81dd046a11e66661018797d77c8ade7e01d19a1ac0d2e664a16c955789b29
6
+ metadata.gz: d061c605183153c41dbde88215322a084b06f3ac293509c54ba7109e2e4342437a813f340ad11fa26a3a8352c7201a05ca667d5b0092a3ef22125128501a1b3e
7
+ data.tar.gz: 108c00082a58b5addceb9f20f0d13eee410e86f4cfc38e2ad6ff47d2900f05876dc62cff5d498e56b1a10e575cb8446cce211a42d5b87e26b1be53d4578efcab
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ 0.1.1
2
+ -----
3
+ **Features**:
4
+
5
+ * Added request support for the following transaction reference actions:
6
+ * Capture
7
+ * Void
8
+ * Refund
9
+ * Added support for the following Reconcile API requests:
10
+ * Transaction
11
+ * By Date Range
12
+ * Web Payment Form Reconcile
13
+ * Added Documentation URI to the project metadata description
14
+
15
+ **Fixes**:
16
+
17
+ * Fixed response parser handling with attributes inside the root element
18
+ * Fixed Changelog URI in the project metadata description
19
+
1
20
  0.1.0
2
21
  -----
3
22
  **Features**:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- genesis_ruby (0.1.0)
4
+ genesis_ruby (0.1.1)
5
5
  net-http (~> 0.3.2)
6
6
  nokogiri (~> 1.14)
7
7
 
@@ -140,7 +140,7 @@ PLATFORMS
140
140
  x86_64-linux
141
141
 
142
142
  DEPENDENCIES
143
- bundler
143
+ bundler (~> 2.1)
144
144
  faker (~> 2.22)
145
145
  faraday-retry (~> 2.0)
146
146
  genesis_ruby!
data/README.md CHANGED
@@ -12,6 +12,8 @@ Client Library for processing payments through Genesis Payment Processing Gatewa
12
12
  ## Requirements
13
13
 
14
14
  * Ruby version 2.7 or newer
15
+ * [net-http](https://rubygems.org/gems/net-http) 0.3.2 or newer
16
+ * [nokogiri](https://rubygems.org/gems/nokogiri) 1.14 or newer
15
17
 
16
18
  ## Installation
17
19
 
@@ -246,6 +248,35 @@ If an error occurs during the Transaction Execution the status is one of the fol
246
248
  ```
247
249
  </details>
248
250
 
251
+ ### Reference actions
252
+ The Reference transaction requests allow actions over an existing payment. The payment can be modified with:
253
+ * Capture - settles a transaction that has been authorized before
254
+ * Void - undo other transactions
255
+ * Refund - allow to return already billed amounts to customers
256
+
257
+ <kbd>!</kbd> Void transaction request doesn't require amount and currency parameters
258
+
259
+ After a successful response of a payment, reference actions can be executed by using the `unique_id`.
260
+
261
+ ```ruby
262
+ require 'genesis_ruby'
263
+
264
+ begin
265
+ genesis = GenesisRuby::Genesis.for(config: configuration, request: GenesisRuby::Api::Requests::Financial::Refund) do |request|
266
+ request.transaction_id = '12345-67890'
267
+ request.amount = '0.99' # not available for GenesisRuby::Api::Requests::Financial::Void
268
+ request.currency = 'EUR' # not available for GenesisRuby::Api::Requests::Financial::Void
269
+ request.usage = 'Example usage'
270
+ request.reference_id = 'unique_id received upon successful payment transaction'
271
+ end.execute
272
+
273
+ puts genesis.response.response_object
274
+
275
+ rescue GenesisRuby::Error => error
276
+ puts error.message
277
+ end
278
+ ```
279
+
249
280
  ### Response Helpers
250
281
 
251
282
  #### Sates
@@ -284,7 +315,7 @@ configuration.sanitize_response = false
284
315
  You can use the following request classes to initialize the Genesis client:
285
316
 
286
317
  ```ruby
287
- # Transactions
318
+ # Financial
288
319
  ## Cards
289
320
  GenesisRuby::Api::Requests::Financial::Cards::Authorize
290
321
  GenesisRuby::Api::Requests::Financial::Cards::Authorize3d
@@ -294,6 +325,17 @@ GenesisRuby::Api::Requests::Financial::Cards::Sale3d
294
325
  # Web Payment Form
295
326
  ## Create
296
327
  GenesisRuby::Api::Requests::Wpf::Create
328
+ GenesisRuby::Api::Requests::Wpf::Reconcile
329
+
330
+ # References
331
+ GenesisRuby::Api::Requests::Financial::Capture
332
+ GenesisRuby::Api::Requests::Financial::Void
333
+ GenesisRuby::Api::Requests::Financial::Refund
334
+
335
+ # Non Financial
336
+ ## Reconcile
337
+ GenesisRuby::Api::Requests::NonFinancial::Reconcile::Transaction
338
+ GenesisRuby::Api::Requests::NonFinancial::Reconcile::DateRange
297
339
  ```
298
340
 
299
341
  ### Manual initialization
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/genesis_ruby.gemspec CHANGED
@@ -13,10 +13,13 @@ Gem::Specification.new do |spec|
13
13
  spec.license = 'MIT'
14
14
  spec.required_ruby_version = '>= 2.7.0'
15
15
 
16
- spec.metadata['homepage_uri'] = spec.homepage
17
- spec.metadata['source_code_uri'] = 'https://github.com/GenesisGateway/genesis_ruby'
18
- spec.metadata['changelog_uri'] = 'https://github.com/GenesisGateway/genesis_ruby/CHANGELOG.md'
16
+ spec.metadata['homepage_uri'] = spec.homepage
17
+ spec.metadata['source_code_uri'] = 'https://github.com/GenesisGateway/genesis_ruby'
18
+ spec.metadata['changelog_uri'] = 'https://github.com/GenesisGateway/genesis_ruby/blob/main/CHANGELOG.md'
19
+ spec.metadata['documentation_uri'] = 'https://github.com/GenesisGateway/genesis_ruby/blob/main/README.md'
19
20
 
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
23
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
24
  f.match(%r{^(bin|test|spec|features|sig)/|\.(?:git|pronto|rspec|rubocop)})
22
25
  end
@@ -28,7 +31,7 @@ Gem::Specification.new do |spec|
28
31
  spec.add_runtime_dependency 'net-http', '~> 0.3.2'
29
32
  spec.add_runtime_dependency 'nokogiri', '~> 1.14'
30
33
 
31
- spec.add_development_dependency 'bundler'
34
+ spec.add_development_dependency 'bundler', '~> 2.1'
32
35
  spec.add_development_dependency 'faker', '~> 2.22'
33
36
  spec.add_development_dependency 'faraday-retry', '~> 2.0'
34
37
  spec.add_development_dependency 'pronto', '~> 0.11'
@@ -0,0 +1,27 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Constants
4
+ module Transactions
5
+ module Parameters
6
+ module Refund
7
+ # Available Bank Account Types used in the Refund transaction request
8
+ class BankAccountTypes
9
+
10
+ extend Mixins::Constants::Common
11
+
12
+ # C: for Checking accounts
13
+ CHECKING = 'C'.freeze
14
+
15
+ # S: for Savings accounts
16
+ SAVINGS = 'S'.freeze
17
+
18
+ # I: for International accounts
19
+ INTERNATIONAL = 'I'.freeze
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,3 @@
1
- require 'genesis_ruby/api/requests/base/financial'
2
-
3
1
  module GenesisRuby
4
2
  module Api
5
3
  module Requests
@@ -0,0 +1,29 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Base
5
+ # Base class used in the Reference transaction requests
6
+ class Reference < Financial
7
+
8
+ include Mixins::Requests::Financial::PaymentAttributes
9
+ include Mixins::Requests::Financial::ReferenceAttributes
10
+
11
+ protected
12
+
13
+ # Reference transaction request structure
14
+ def reference_transaction_structure
15
+ raise NotImplementedError, 'Reference transaction structure must be implemented.'
16
+ end
17
+
18
+ # Payment transaction structure sent to the Gateway
19
+ def payment_transaction_structure
20
+ {
21
+ reference_id: reference_id
22
+ }.merge payment_attributes_structure, reference_transaction_structure
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ # Capture settles a transaction which has been authorized before
6
+ class Capture < Requests::Base::Reference
7
+
8
+ include Mixins::Requests::Financial::Business::BusinessAttributes
9
+ include Mixins::Requests::RestrictedSetter
10
+
11
+ protected
12
+
13
+ # Capture Transaction Request type
14
+ def transaction_type
15
+ Api::Constants::Transactions::CAPTURE
16
+ end
17
+
18
+ # Capture Transaction Request Structure
19
+ def reference_transaction_structure
20
+ {
21
+ reference_id: reference_id,
22
+ business_attributes: business_attributes_structure
23
+ }
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,48 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/refund/bank_account_types'
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module Financial
7
+ # Refund reference transaction request
8
+ class Refund < Requests::Base::Reference
9
+
10
+ include Mixins::Requests::RestrictedSetter
11
+
12
+ attr_accessor :beneficiary_bank_code, :beneficiary_name, :beneficiary_account_number, :bank, :bank_branch,
13
+ :bank_account
14
+ attr_reader :bank_account_type
15
+
16
+ # The type of account
17
+ def bank_account_type=(value)
18
+ allowed_options attribute: __method__,
19
+ allowed: Api::Constants::Transactions::Parameters::Refund::BankAccountTypes.all,
20
+ value: value,
21
+ allow_empty: true
22
+ end
23
+
24
+ protected
25
+
26
+ # Refund Transaction Request type
27
+ def transaction_type
28
+ Api::Constants::Transactions::REFUND
29
+ end
30
+
31
+ # Refund Transaction Request Structure
32
+ def reference_transaction_structure
33
+ {
34
+ beneficiary_bank_code: beneficiary_bank_code,
35
+ beneficiary_name: beneficiary_name,
36
+ beneficiary_account_number: beneficiary_account_number,
37
+ bank: bank,
38
+ bank_branch: bank_branch,
39
+ bank_account: bank_account,
40
+ bank_account_type: bank_account_type
41
+ }
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,28 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ # Void or undo payment transaction request
6
+ class Void < Base::Financial
7
+
8
+ include Mixins::Requests::Financial::ReferenceAttributes
9
+
10
+ protected
11
+
12
+ # Void transaction type
13
+ def transaction_type
14
+ Api::Constants::Transactions::VOID
15
+ end
16
+
17
+ # Void transaction request structure
18
+ def payment_transaction_structure
19
+ {
20
+ reference_id: reference_id
21
+ }
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,95 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Reconcile
6
+ # Date range based reconciliation allows you to fetch information for all payment transactions from
7
+ # a terminal within a given date range.
8
+ # The response is paginated, each request will return 100 entries max.
9
+ class DateRange < Api::Request
10
+
11
+ include Mixins::Requests::RestrictedSetter
12
+
13
+ attr_reader :page
14
+
15
+ # Start of the requested date range (time is optional)
16
+ def start_date
17
+ format = if start_date_time?
18
+ Constants::DateTimeFormats::YYYY_MM_DD_H_I_S
19
+ else
20
+ Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
21
+ end
22
+
23
+ @start_date&.strftime format
24
+ end
25
+
26
+ # Start of the requested date range (time is optional)
27
+ def start_date=(value)
28
+ self.start_date_time = Utils::Common.date_has_time? value
29
+
30
+ parse_date attribute: __method__, value: value, allow_empty: false
31
+ end
32
+
33
+ # Start of the requested date range (time is optional)
34
+ def end_date
35
+ format = if end_date_time?
36
+ Constants::DateTimeFormats::YYYY_MM_DD_H_I_S
37
+ else
38
+ Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
39
+ end
40
+
41
+ @end_date&.strftime format
42
+ end
43
+
44
+ # End of the requested date range (time is optional)
45
+ def end_date=(value)
46
+ self.end_date_time = Utils::Common.date_has_time? value
47
+
48
+ parse_date attribute: __method__, value: value, allow_empty: true
49
+ end
50
+
51
+ # The page within the paginated result, defaults to 1
52
+ def page=(value)
53
+ @page = value&.to_i
54
+ end
55
+
56
+ protected
57
+
58
+ # Set Gateway API configuration
59
+ def init_configuration
60
+ init_xml_configuration
61
+ init_api_gateway_configuration request_path: 'reconcile/by_date'
62
+ @api_config.parser_skip_root_node = false
63
+ end
64
+
65
+ # API Request structure
66
+ def populate_structure
67
+ @tree_structure = {
68
+ reconcile: {
69
+ start_date: start_date,
70
+ end_date: end_date,
71
+ page: page
72
+ }
73
+ }
74
+ end
75
+
76
+ private
77
+
78
+ attr_accessor :start_date_time, :end_date_time
79
+
80
+ # Start Date has time within the given string
81
+ def start_date_time?
82
+ self.start_date_time ||= false
83
+ end
84
+
85
+ # End Date has time within the given string
86
+ def end_date_time?
87
+ self.end_date_time ||= false
88
+ end
89
+
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,37 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Reconcile
6
+ # Reconcile can be used to retrieve data about a transaction.
7
+ # This can be useful if you want to retrieve information about a transaction whose status is timeout,
8
+ # which returned an error or has changed eg. has beed chargebacked.
9
+ class Transaction < Api::Request
10
+
11
+ attr_accessor :arn, :transaction_id, :unique_id
12
+
13
+ protected
14
+
15
+ # Set Gateway API configuration
16
+ def init_configuration
17
+ init_xml_configuration
18
+ init_api_gateway_configuration request_path: 'reconcile'
19
+ end
20
+
21
+ # API Request structure
22
+ def populate_structure
23
+ @tree_structure = {
24
+ reconcile: {
25
+ arn: arn,
26
+ transaction_id: transaction_id,
27
+ unique_id: unique_id
28
+ }
29
+ }
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Wpf
5
+ # Reconcile can be used to retrieve data about a payment.
6
+ # This can be useful if you want to retrieve information about a payment whose status is timeout,
7
+ # which returned an error or has changed eg. has beed chargebacked.
8
+ class Reconcile < Request
9
+
10
+ attr_accessor :unique_id
11
+
12
+ protected
13
+
14
+ # Define WPF Reconcile request configuration
15
+ def init_configuration
16
+ init_xml_configuration
17
+ @api_config.url = build_request_url subdomain: 'wpf', path: 'wpf/reconcile'
18
+ end
19
+
20
+ # WPF Reconcile request structure
21
+ def populate_structure
22
+ @tree_structure = {
23
+ wpf_reconcile: {
24
+ unique_id: unique_id
25
+ }
26
+ }
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -10,10 +10,11 @@ module GenesisRuby
10
10
  # Response - process/format an incoming Genesis response
11
11
  class Response
12
12
 
13
- def initialize(configuration)
13
+ def initialize(configuration, request_api_config = {})
14
14
  @configuration = configuration
15
15
  @object_formatter = GenesisRuby::Utils::ObjectFormatter.new
16
16
  @response_formatter = GenesisRuby::Utils::Formatters::Response::Loader.new
17
+ @request_api_config = request_api_config
17
18
  end
18
19
 
19
20
  # Default Response Object initialization
@@ -54,11 +55,9 @@ module GenesisRuby
54
55
  # Load the corresponding parser based on the Network header
55
56
  def load_parser(network)
56
57
  @parser = GenesisRuby::Parsers.new(GenesisRuby::Parser::JSON) if network.json?
58
+ @parser = GenesisRuby::Parser.new(GenesisRuby::Parser::XML) if network.xml?
57
59
 
58
- if network.xml?
59
- @parser = GenesisRuby::Parser.new(GenesisRuby::Parser::XML)
60
- @parser.skip_root_node
61
- end
60
+ @parser.skip_root_node if @request_api_config[:parser_skip_root_node]
62
61
 
63
62
  @parser
64
63
  end
@@ -12,6 +12,13 @@ require 'genesis_ruby/api/mixins/requests/restricted_setter'
12
12
  # Load API Attributes
13
13
  Dir["#{File.dirname(__FILE__)}/api/mixins/**/*_attributes.rb"].sort.each { |file| require file }
14
14
 
15
+ # =================================
16
+ # Transaction Requests Bases
17
+ # =================================
18
+ require 'genesis_ruby/api/requests/base/financial'
19
+ require 'genesis_ruby/api/requests/base/financials/credit_card'
20
+ require 'genesis_ruby/api/requests/base/reference'
21
+
15
22
  # Load Financial and Non Financial API Requests
16
23
  Dir["#{File.dirname(__FILE__)}/api/requests/*financial/**/*.rb"].sort.each { |file| require file }
17
24
 
@@ -93,7 +93,7 @@ module GenesisRuby
93
93
  parsed_date = nil
94
94
 
95
95
  formats.each do |format|
96
- return Date.strptime(date, format)
96
+ return DateTime.strptime(date, format)
97
97
  rescue StandardError
98
98
  parsed_date = nil
99
99
  end
@@ -101,6 +101,13 @@ module GenesisRuby
101
101
  parsed_date
102
102
  end
103
103
 
104
+ # Check if the given string contain time
105
+ def date_has_time?(value)
106
+ return true if value =~ /(?:\d|[01]\d|2[0-3]):[0-5]\d:[0-5]\d/
107
+
108
+ false
109
+ end
110
+
104
111
  end
105
112
 
106
113
  end
@@ -8,26 +8,29 @@ module GenesisRuby
8
8
 
9
9
  # Load pre-defined XML configuration
10
10
  def load_xml_config
11
- self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
12
- self.port = GenesisRuby::Api::Request::PORT_HTTPS
13
- self.type = GenesisRuby::Api::Request::METHOD_POST
14
- self.format = 'xml' # TODO: use the builder constant
11
+ self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
12
+ self.port = GenesisRuby::Api::Request::PORT_HTTPS
13
+ self.type = GenesisRuby::Api::Request::METHOD_POST
14
+ self.format = Builder::XML
15
+ self.parser_skip_root_node = true
15
16
  end
16
17
 
17
18
  # Load pre-defined JSON configuration
18
19
  def load_json_config
19
- self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
20
- self.port = GenesisRuby::Api::Request::PORT_HTTPS
21
- self.type = GenesisRuby::Api::Request::METHOD_POST
22
- self.format = 'json' # TODO: use the builder constant
20
+ self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
21
+ self.port = GenesisRuby::Api::Request::PORT_HTTPS
22
+ self.type = GenesisRuby::Api::Request::METHOD_POST
23
+ self.format = Builder::JSON
24
+ self.parser_skip_root_node = false
23
25
  end
24
26
 
25
27
  # Load pre-defined FORM configuration
26
28
  def load_form_config
27
- self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
28
- self.port = GenesisRuby::Api::Request::PORT_HTTPS
29
- self.type = GenesisRuby::Api::Request::METHOD_POST
30
- self.format = 'form' # TODO: use the builder constant
29
+ self.protocol = GenesisRuby::Api::Request::PROTOCOL_HTTPS
30
+ self.port = GenesisRuby::Api::Request::PORT_HTTPS
31
+ self.type = GenesisRuby::Api::Request::METHOD_POST
32
+ self.format = Builder::FORM
33
+ self.parser_skip_root_node = true
31
34
  end
32
35
 
33
36
  end
@@ -1,5 +1,5 @@
1
1
  module GenesisRuby
2
2
 
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '0.1.1'.freeze
4
4
 
5
5
  end
data/lib/genesis_ruby.rb CHANGED
@@ -12,7 +12,7 @@ module GenesisRuby
12
12
 
13
13
  # Transaction Request Initializer
14
14
  def self.for(config:, request:)
15
- unless request.is_a?(Class) || request < GenesisRuby::Api::Request
15
+ unless request.is_a?(Class) && request < GenesisRuby::Api::Request
16
16
  raise InvalidArgumentError, 'Given Request is invalid'
17
17
  end
18
18
 
@@ -31,7 +31,10 @@ module GenesisRuby
31
31
  def initialize(configuration, request = nil)
32
32
  @configuration = configuration
33
33
  @request = request
34
- @response = GenesisRuby::Api::Response.new(configuration)
34
+ @response = GenesisRuby::Api::Response.new(
35
+ configuration,
36
+ request&.api_config || GenesisRuby::Utils::Options::ApiConfig.new
37
+ )
35
38
  @network = GenesisRuby::Connection.for(configuration)
36
39
  end
37
40
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genesis_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - emerchantpay Ltd.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-15 00:00:00.000000000 Z
11
+ date: 2023-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '2.1'
48
48
  type: :development
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: '0'
54
+ version: '2.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: faker
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -232,6 +232,7 @@ files:
232
232
  - lib/genesis_ruby/api/constants/transactions/parameters/business/payment_types.rb
233
233
  - lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb
234
234
  - lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb
235
+ - lib/genesis_ruby/api/constants/transactions/parameters/refund/bank_account_types.rb
235
236
  - lib/genesis_ruby/api/constants/transactions/parameters/sca_exemptions.rb
236
237
  - lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths.rb
237
238
  - lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/password_change_indicators.rb
@@ -294,11 +295,18 @@ files:
294
295
  - lib/genesis_ruby/api/request.rb
295
296
  - lib/genesis_ruby/api/requests/base/financial.rb
296
297
  - lib/genesis_ruby/api/requests/base/financials/credit_card.rb
298
+ - lib/genesis_ruby/api/requests/base/reference.rb
299
+ - lib/genesis_ruby/api/requests/financial/capture.rb
297
300
  - lib/genesis_ruby/api/requests/financial/cards/authorize.rb
298
301
  - lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb
299
302
  - lib/genesis_ruby/api/requests/financial/cards/sale.rb
300
303
  - lib/genesis_ruby/api/requests/financial/cards/sale3d.rb
304
+ - lib/genesis_ruby/api/requests/financial/refund.rb
305
+ - lib/genesis_ruby/api/requests/financial/void.rb
306
+ - lib/genesis_ruby/api/requests/non_financial/reconcile/date_range.rb
307
+ - lib/genesis_ruby/api/requests/non_financial/reconcile/transaction.rb
301
308
  - lib/genesis_ruby/api/requests/wpf/create.rb
309
+ - lib/genesis_ruby/api/requests/wpf/reconcile.rb
302
310
  - lib/genesis_ruby/api/response.rb
303
311
  - lib/genesis_ruby/builder.rb
304
312
  - lib/genesis_ruby/builders/base.rb
@@ -349,7 +357,8 @@ licenses:
349
357
  metadata:
350
358
  homepage_uri: https://github.com/GenesisGateway/genesis_ruby
351
359
  source_code_uri: https://github.com/GenesisGateway/genesis_ruby
352
- changelog_uri: https://github.com/GenesisGateway/genesis_ruby/CHANGELOG.md
360
+ changelog_uri: https://github.com/GenesisGateway/genesis_ruby/blob/main/CHANGELOG.md
361
+ documentation_uri: https://github.com/GenesisGateway/genesis_ruby/blob/main/README.md
353
362
  post_install_message:
354
363
  rdoc_options: []
355
364
  require_paths:
@@ -365,7 +374,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
365
374
  - !ruby/object:Gem::Version
366
375
  version: '0'
367
376
  requirements: []
368
- rubygems_version: 3.1.2
377
+ rubygems_version: 3.4.1
369
378
  signing_key:
370
379
  specification_version: 4
371
380
  summary: Ruby Client for Genesis Payment Processing Gateway