eml 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +10 -0
- data/.env.example +6 -0
- data/.gitignore +5 -0
- data/.rspec +5 -0
- data/.rubocop.yml +90 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +87 -0
- data/eml.gemspec +37 -0
- data/lib/eml.rb +22 -0
- data/lib/eml/config.rb +49 -0
- data/lib/eml/data/countries.rb +260 -0
- data/lib/eml/data/currencies.rb +176 -0
- data/lib/eml/data/states.rb +4055 -0
- data/lib/eml/environment.rb +54 -0
- data/lib/eml/error.rb +25 -0
- data/lib/eml/error/rest.rb +42 -0
- data/lib/eml/error/rest/authentication.rb +21 -0
- data/lib/eml/error/rest/bad_request.rb +20 -0
- data/lib/eml/error/rest/daily_funding_limit.rb +19 -0
- data/lib/eml/error/rest/forbidden.rb +20 -0
- data/lib/eml/error/rest/internal_server.rb +9 -0
- data/lib/eml/error/rest/not_found.rb +20 -0
- data/lib/eml/error/rest/unprocessable_entity.rb +20 -0
- data/lib/eml/lib/endpoint_class.rb +42 -0
- data/lib/eml/parameters.rb +153 -0
- data/lib/eml/payload.rb +137 -0
- data/lib/eml/response.rb +103 -0
- data/lib/eml/uk.rb +51 -0
- data/lib/eml/uk/api_resource.rb +94 -0
- data/lib/eml/uk/config.rb +52 -0
- data/lib/eml/uk/lib/endpoint_class.rb +19 -0
- data/lib/eml/uk/lib/parse_date.rb +35 -0
- data/lib/eml/uk/model/transaction.rb +56 -0
- data/lib/eml/uk/parameters.rb +99 -0
- data/lib/eml/uk/parameters/agreement/show.rb +22 -0
- data/lib/eml/uk/parameters/card/activation.rb +24 -0
- data/lib/eml/uk/parameters/card/lock.rb +26 -0
- data/lib/eml/uk/parameters/card/register.rb +24 -0
- data/lib/eml/uk/parameters/card/reload.rb +24 -0
- data/lib/eml/uk/parameters/card/show.rb +102 -0
- data/lib/eml/uk/parameters/card/transaction.rb +59 -0
- data/lib/eml/uk/parameters/card/unload.rb +26 -0
- data/lib/eml/uk/parameters/card/unlock.rb +26 -0
- data/lib/eml/uk/parameters/card/void.rb +26 -0
- data/lib/eml/uk/payload.rb +94 -0
- data/lib/eml/uk/payload/agreement/show.rb +46 -0
- data/lib/eml/uk/payload/card/activation.rb +73 -0
- data/lib/eml/uk/payload/card/lock.rb +34 -0
- data/lib/eml/uk/payload/card/register.rb +70 -0
- data/lib/eml/uk/payload/card/reload.rb +38 -0
- data/lib/eml/uk/payload/card/show.rb +12 -0
- data/lib/eml/uk/payload/card/transaction.rb +12 -0
- data/lib/eml/uk/payload/card/unload.rb +38 -0
- data/lib/eml/uk/payload/card/unlock.rb +23 -0
- data/lib/eml/uk/payload/card/void.rb +23 -0
- data/lib/eml/uk/payload/contactentity.rb +64 -0
- data/lib/eml/uk/payload/iso.rb +48 -0
- data/lib/eml/uk/payload/location.rb +30 -0
- data/lib/eml/uk/resources/agreement.rb +32 -0
- data/lib/eml/uk/resources/card.rb +181 -0
- data/lib/eml/uk/response.rb +29 -0
- data/lib/eml/uk/responses/agreement/show.rb +16 -0
- data/lib/eml/uk/responses/card/reload.rb +19 -0
- data/lib/eml/uk/responses/card/show.rb +53 -0
- data/lib/eml/uk/responses/card/transaction.rb +24 -0
- data/lib/eml/version.rb +6 -0
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/addressable.rbi +198 -0
- data/sorbet/rbi/gems/ast.rbi +47 -0
- data/sorbet/rbi/gems/concurrent-ruby.rbi +218 -0
- data/sorbet/rbi/gems/crack.rbi +47 -0
- data/sorbet/rbi/gems/docile.rbi +31 -0
- data/sorbet/rbi/gems/domain_name.rbi +51 -0
- data/sorbet/rbi/gems/dotenv.rbi +67 -0
- data/sorbet/rbi/gems/faker.rbi +1350 -0
- data/sorbet/rbi/gems/hashdiff.rbi +65 -0
- data/sorbet/rbi/gems/http-cookie.rbi +92 -0
- data/sorbet/rbi/gems/http-form_data.rbi +73 -0
- data/sorbet/rbi/gems/http.rbi +609 -0
- data/sorbet/rbi/gems/http_parser.rb.rbi +36 -0
- data/sorbet/rbi/gems/i18n.rbi +191 -0
- data/sorbet/rbi/gems/jaro_winkler.rbi +14 -0
- data/sorbet/rbi/gems/parallel.rbi +81 -0
- data/sorbet/rbi/gems/parser.rbi +835 -0
- data/sorbet/rbi/gems/public_suffix.rbi +103 -0
- data/sorbet/rbi/gems/rainbow.rbi +117 -0
- data/sorbet/rbi/gems/rspec-core.rbi +1655 -0
- data/sorbet/rbi/gems/rspec-support.rbi +126 -0
- data/sorbet/rbi/gems/rspec.rbi +14 -0
- data/sorbet/rbi/gems/rubocop-performance.rbi +276 -0
- data/sorbet/rbi/gems/rubocop-rspec.rbi +860 -0
- data/sorbet/rbi/gems/rubocop.rbi +6943 -0
- data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
- data/sorbet/rbi/gems/simplecov-html.rbi +30 -0
- data/sorbet/rbi/gems/simplecov.rbi +225 -0
- data/sorbet/rbi/gems/unf.rbi +18 -0
- data/sorbet/rbi/gems/unicode-display_width.rbi +16 -0
- data/sorbet/rbi/gems/vcr.rbi +503 -0
- data/sorbet/rbi/gems/webmock.rbi +521 -0
- data/sorbet/rbi/hidden-definitions/errors.txt +4802 -0
- data/sorbet/rbi/hidden-definitions/hidden.rbi +10700 -0
- data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8682 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
- data/sorbet/rbi/todo.rbi +24 -0
- data/spec/config_spec.rb +26 -0
- data/spec/helpers/config_helper.rb +21 -0
- data/spec/helpers/vcr_helper.rb +19 -0
- data/spec/spec_helper.rb +120 -0
- data/spec/uk/api_resource_spec.rb +39 -0
- data/spec/uk/resources/agreement_spec.rb +23 -0
- data/spec/uk/resources/card_spec.rb +197 -0
- metadata +339 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
# typed: ignore
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bigdecimal"
|
5
|
+
|
6
|
+
module EML
|
7
|
+
module UK
|
8
|
+
class ParseDate
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
def self.call(date_string)
|
12
|
+
new(date_string).call
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(date_string)
|
16
|
+
@date_string = date_string
|
17
|
+
end
|
18
|
+
|
19
|
+
def call
|
20
|
+
return if @date_string.nil?
|
21
|
+
|
22
|
+
matches = @date_string.match(%r(/Date\(((\d{13})([\+\-]\d{4})?)\)/))
|
23
|
+
return if matches.nil?
|
24
|
+
|
25
|
+
milliseconds = BigDecimal(matches[2])
|
26
|
+
timezone_offset = matches[3]
|
27
|
+
|
28
|
+
time = Time.at(milliseconds / 1000).utc
|
29
|
+
return time if timezone_offset.nil?
|
30
|
+
|
31
|
+
time.localtime("#{timezone_offset[0, 3]}:#{timezone_offset[3, 4]}")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Model
|
7
|
+
class Transaction
|
8
|
+
FIELDS = %w[
|
9
|
+
acceptor_code
|
10
|
+
acceptor_location
|
11
|
+
activity
|
12
|
+
amount
|
13
|
+
auth_id
|
14
|
+
authorization_request_id
|
15
|
+
currency
|
16
|
+
eml_id
|
17
|
+
expiration_minutes
|
18
|
+
location
|
19
|
+
merchant_category_code
|
20
|
+
merchant_country
|
21
|
+
notes
|
22
|
+
original_transaction_date
|
23
|
+
pos_transaction_time
|
24
|
+
reason
|
25
|
+
result
|
26
|
+
retrieval_reference_number
|
27
|
+
system_transaction_id
|
28
|
+
timestamp
|
29
|
+
transaction_amount
|
30
|
+
transaction_currency
|
31
|
+
user
|
32
|
+
].freeze
|
33
|
+
private_constant :FIELDS
|
34
|
+
|
35
|
+
FIELDS.each { |field| __send__(:attr_reader, :"#{field}") }
|
36
|
+
|
37
|
+
def initialize(response)
|
38
|
+
FIELDS.each do |field|
|
39
|
+
value = field_value(field, response[field])
|
40
|
+
instance_variable_set(:"@#{field}", value)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def field_value(field, raw_value)
|
47
|
+
if field.include?("time")
|
48
|
+
EML::UK::ParseDate.(raw_value)
|
49
|
+
else
|
50
|
+
raw_value
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Parameters are the elements of a query string.
|
5
|
+
# For example: example.com?param1=value1¶m2=value2
|
6
|
+
module EML
|
7
|
+
module UK
|
8
|
+
class Parameters < ::EML::Parameters
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).void }
|
12
|
+
def initialize(params)
|
13
|
+
params = merge_required_config(params)
|
14
|
+
params = merge_optional_config(params)
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
class << self
|
19
|
+
extend T::Sig
|
20
|
+
|
21
|
+
sig do
|
22
|
+
params(
|
23
|
+
resource_class: T.untyped,
|
24
|
+
endpoint: String,
|
25
|
+
params: T::Hash[Symbol, T.untyped]
|
26
|
+
).returns(T.untyped)
|
27
|
+
end
|
28
|
+
def convert(resource_class, endpoint, params)
|
29
|
+
endpoint_class = EML::UK::EndpointClass.(
|
30
|
+
class_type: self::ENDPOINT_CLASS_TYPE,
|
31
|
+
resource_class: resource_class, endpoint: endpoint
|
32
|
+
)
|
33
|
+
|
34
|
+
convert_with_endpoint_class(
|
35
|
+
endpoint: endpoint, endpoint_class: endpoint_class,
|
36
|
+
resource_class: resource_class, params: params
|
37
|
+
)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
protected
|
42
|
+
|
43
|
+
BOOLEAN_OPTIONS = %w[true false].freeze
|
44
|
+
|
45
|
+
sig { params(param_name: String, param_value: String).void }
|
46
|
+
def validate_boolean(param_name, param_value)
|
47
|
+
return if BOOLEAN_OPTIONS.include?(param_value)
|
48
|
+
|
49
|
+
message = "#{param_name} should be the string 'true' or 'false' but " \
|
50
|
+
"received #{param_value.inspect}"
|
51
|
+
raise ArgumentError, message
|
52
|
+
end
|
53
|
+
|
54
|
+
SEARCH_PARAMETER_OPTIONS = %w[
|
55
|
+
ActualCardNumber CarrierNumber ClientTrackingId ExternalId
|
56
|
+
PaymentTrackingID PrintText
|
57
|
+
].freeze
|
58
|
+
|
59
|
+
sig { params(value: String).void }
|
60
|
+
def validate_search_parameter(value)
|
61
|
+
return if SEARCH_PARAMETER_OPTIONS.include?(value)
|
62
|
+
|
63
|
+
message = "search_parameter should be one of " \
|
64
|
+
"#{SEARCH_PARAMETER_OPTIONS.join(", ")} but received #{value.inspect}"
|
65
|
+
raise ArgumentError, message
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
sig do
|
71
|
+
params(params: T::Hash[Symbol, T.untyped]).
|
72
|
+
returns(T::Hash[Symbol, T.untyped])
|
73
|
+
end
|
74
|
+
def merge_optional_config(params)
|
75
|
+
return params unless self.class.const_defined?(:OPTIONAL_CONFIG)
|
76
|
+
|
77
|
+
config = EML::UK.config
|
78
|
+
self.class.const_get(:OPTIONAL_CONFIG).
|
79
|
+
each_with_object(params.dup) do |name, new_params|
|
80
|
+
new_params[name] ||= config.public_send(name)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
sig do
|
85
|
+
params(params: T::Hash[Symbol, T.untyped]).
|
86
|
+
returns(T::Hash[Symbol, T.untyped])
|
87
|
+
end
|
88
|
+
def merge_required_config(params)
|
89
|
+
return params unless self.class.const_defined?(:REQUIRED_CONFIG)
|
90
|
+
|
91
|
+
config = EML::UK.config
|
92
|
+
self.class.const_get(:REQUIRED_CONFIG).
|
93
|
+
each_with_object(params.dup) do |name, new_params|
|
94
|
+
new_params[name] ||= config.require_parameter(name)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Agreement
|
8
|
+
class Show < ::EML::UK::Parameters
|
9
|
+
def initialize(params)
|
10
|
+
params[:client_language] ||= "en"
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
sig { params(client_language: String).returns(String) }
|
17
|
+
attr_accessor :client_language
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Activation < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
sig { params(program: String).returns(String) }
|
13
|
+
attr_accessor :program
|
14
|
+
|
15
|
+
sig { params(search_parameter: String).returns(String) }
|
16
|
+
def search_parameter=(search_parameter)
|
17
|
+
validate_search_parameter(search_parameter)
|
18
|
+
@search_parameter = search_parameter
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Lock < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
sig { params(program: String).returns(String) }
|
15
|
+
attr_accessor :program
|
16
|
+
|
17
|
+
sig { params(search_parameter: String).returns(String) }
|
18
|
+
def search_parameter=(search_parameter)
|
19
|
+
validate_search_parameter(search_parameter)
|
20
|
+
@search_parameter = search_parameter
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Register < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
sig { params(program: String).returns(String) }
|
13
|
+
attr_accessor :program
|
14
|
+
|
15
|
+
sig { params(search_parameter: String).returns(String) }
|
16
|
+
def search_parameter=(search_parameter)
|
17
|
+
validate_search_parameter(search_parameter)
|
18
|
+
@search_parameter = search_parameter
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Reload < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
sig { params(program: String).returns(String) }
|
13
|
+
attr_accessor :program
|
14
|
+
|
15
|
+
sig { params(search_parameter: String).returns(String) }
|
16
|
+
def search_parameter=(search_parameter)
|
17
|
+
validate_search_parameter(search_parameter)
|
18
|
+
@search_parameter = search_parameter
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Show < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
FIELDS_OPTIONS = %w[
|
13
|
+
account_expiration_date
|
14
|
+
activating_merchant_group_name
|
15
|
+
activating_merchant_group_uniquetag
|
16
|
+
activation_amount
|
17
|
+
activation_country
|
18
|
+
activation_date
|
19
|
+
activation_transaction_Id
|
20
|
+
actual_balance
|
21
|
+
adjusted_balance
|
22
|
+
agreement_txt
|
23
|
+
agreement_pdf
|
24
|
+
agreement_pdf_fileName
|
25
|
+
amf_amount
|
26
|
+
amf_start_date
|
27
|
+
amf_next_date
|
28
|
+
available_balance
|
29
|
+
bank_name
|
30
|
+
barcode_image
|
31
|
+
can_activate
|
32
|
+
can_redeem
|
33
|
+
card_image
|
34
|
+
card_type
|
35
|
+
client_tracking_id
|
36
|
+
currency
|
37
|
+
cvv2
|
38
|
+
distributor_refund
|
39
|
+
expiration_date
|
40
|
+
has_atm_access
|
41
|
+
has_pin
|
42
|
+
id
|
43
|
+
is_icc_card
|
44
|
+
is_organization_registration
|
45
|
+
is_registered
|
46
|
+
is_reloadable
|
47
|
+
is_virtual
|
48
|
+
pan
|
49
|
+
pan_last_four
|
50
|
+
pin_enabled
|
51
|
+
print_text
|
52
|
+
program_can_register
|
53
|
+
program_name
|
54
|
+
program_uniquetag
|
55
|
+
promotion_balance
|
56
|
+
promotion_expiration
|
57
|
+
promotion_type_id
|
58
|
+
security_code
|
59
|
+
status
|
60
|
+
uri
|
61
|
+
unload_to_ach_fee
|
62
|
+
].freeze
|
63
|
+
|
64
|
+
sig { params(fields: T::Array[String]).returns(String) }
|
65
|
+
def fields=(fields)
|
66
|
+
unless fields.first == "all"
|
67
|
+
fields.each do |field|
|
68
|
+
validate_array("fields", field, FIELDS_OPTIONS)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
@fields = fields.join(",")
|
73
|
+
end
|
74
|
+
|
75
|
+
sig { params(log_balance_inquiry: String).returns(String) }
|
76
|
+
def log_balance_inquiry=(log_balance_inquiry)
|
77
|
+
validate_boolean("log_balance_inquiry", log_balance_inquiry)
|
78
|
+
@log_balance_inquiry = log_balance_inquiry
|
79
|
+
end
|
80
|
+
|
81
|
+
sig { params(only_valid_status: String).returns(String) }
|
82
|
+
def only_valid_status=(only_valid_status)
|
83
|
+
validate_boolean("only_valid_status", only_valid_status)
|
84
|
+
@only_valid_status = only_valid_status
|
85
|
+
end
|
86
|
+
|
87
|
+
sig { params(program: String).returns(String) }
|
88
|
+
attr_accessor :program
|
89
|
+
|
90
|
+
sig { params(search_parameter: String).returns(String) }
|
91
|
+
def search_parameter=(search_parameter)
|
92
|
+
validate_search_parameter(search_parameter)
|
93
|
+
@search_parameter = search_parameter
|
94
|
+
end
|
95
|
+
|
96
|
+
sig { params(security_code: String).returns(String) }
|
97
|
+
attr_accessor :security_code
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module EML
|
5
|
+
module UK
|
6
|
+
class Parameters
|
7
|
+
module Card
|
8
|
+
class Transaction < ::EML::UK::Parameters
|
9
|
+
REQUIRED_CONFIG = %i[program].freeze
|
10
|
+
OPTIONAL_CONFIG = %i[search_parameter].freeze
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
FIELDS_OPTIONS = %w[
|
15
|
+
activity
|
16
|
+
amount
|
17
|
+
authorization_request_id
|
18
|
+
currency
|
19
|
+
location
|
20
|
+
merchant_category_code
|
21
|
+
merchant_country
|
22
|
+
notes
|
23
|
+
original_transaction_date
|
24
|
+
pos_transaction_time
|
25
|
+
reason
|
26
|
+
result
|
27
|
+
retrieval_reference_number
|
28
|
+
system_transaction_id
|
29
|
+
timestamp
|
30
|
+
user
|
31
|
+
].freeze
|
32
|
+
|
33
|
+
sig { params(fields: T::Array[String]).returns(String) }
|
34
|
+
def fields=(fields)
|
35
|
+
unless fields.first == "all"
|
36
|
+
fields.each do |field|
|
37
|
+
validate_array("fields", field, FIELDS_OPTIONS)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
@fields = fields.join(",")
|
42
|
+
end
|
43
|
+
|
44
|
+
sig { params(filter: String).returns(String) }
|
45
|
+
attr_accessor :filter
|
46
|
+
|
47
|
+
sig { params(program: String).returns(String) }
|
48
|
+
attr_accessor :program
|
49
|
+
|
50
|
+
sig { params(search_parameter: String).returns(String) }
|
51
|
+
def search_parameter=(search_parameter)
|
52
|
+
validate_search_parameter(search_parameter)
|
53
|
+
@search_parameter = search_parameter
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|