eml 2.1.8 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/eml.gemspec +3 -3
  3. data/lib/eml/error/rest/internal_server.rb +1 -1
  4. data/lib/eml/error/tns.rb +1 -1
  5. data/lib/eml/lib/basic_auth/generate.rb +1 -1
  6. data/lib/eml/lib/basic_auth/verify.rb +1 -1
  7. data/lib/eml/lib/constant_time_compare.rb +1 -1
  8. data/lib/eml/parameters.rb +6 -3
  9. data/lib/eml/payload.rb +1 -1
  10. data/lib/eml/response.rb +1 -1
  11. data/lib/eml/uk/models/tns/card.rb +1 -1
  12. data/lib/eml/uk/models/transaction.rb +1 -1
  13. data/lib/eml/uk/parameters/agreement/show.rb +3 -2
  14. data/lib/eml/uk/parameters/card/activation.rb +4 -4
  15. data/lib/eml/uk/parameters/card/lock.rb +4 -4
  16. data/lib/eml/uk/parameters/card/register.rb +4 -4
  17. data/lib/eml/uk/parameters/card/reload.rb +4 -4
  18. data/lib/eml/uk/parameters/card/show.rb +16 -7
  19. data/lib/eml/uk/parameters/card/transaction.rb +14 -7
  20. data/lib/eml/uk/parameters/card/unload.rb +4 -4
  21. data/lib/eml/uk/parameters/card/unlock.rb +4 -4
  22. data/lib/eml/uk/parameters/card/void.rb +4 -4
  23. data/lib/eml/uk/parameters.rb +3 -0
  24. data/lib/eml/uk/payload/agreement/show.rb +19 -10
  25. data/lib/eml/uk/payload/card/activation.rb +25 -14
  26. data/lib/eml/uk/payload/card/lock.rb +14 -7
  27. data/lib/eml/uk/payload/card/register.rb +22 -4
  28. data/lib/eml/uk/payload/card/reload.rb +17 -8
  29. data/lib/eml/uk/payload/card/show.rb +1 -1
  30. data/lib/eml/uk/payload/card/transaction.rb +1 -1
  31. data/lib/eml/uk/payload/card/unload.rb +17 -8
  32. data/lib/eml/uk/payload/card/unlock.rb +5 -5
  33. data/lib/eml/uk/payload/card/void.rb +5 -5
  34. data/lib/eml/uk/payload/location.rb +6 -6
  35. data/lib/eml/uk/response.rb +1 -1
  36. data/lib/eml/uk/responses/agreement/show.rb +1 -1
  37. data/lib/eml/uk/responses/card/reload.rb +1 -1
  38. data/lib/eml/uk/responses/card/show.rb +1 -1
  39. data/lib/eml/version.rb +1 -1
  40. data/sorbet/rbi/gems/addressable.rbi +2 -2
  41. data/sorbet/rbi/gems/byebug.rbi +1039 -0
  42. data/sorbet/rbi/gems/coderay.rbi +91 -0
  43. data/sorbet/rbi/gems/ffi-compiler.rbi +26 -0
  44. data/sorbet/rbi/gems/ffi.rbi +559 -0
  45. data/sorbet/rbi/gems/http-parser.rbi +120 -0
  46. data/sorbet/rbi/gems/http.rbi +13 -7
  47. data/sorbet/rbi/gems/method_source.rbi +63 -0
  48. data/sorbet/rbi/gems/pry-byebug.rbi +149 -0
  49. data/sorbet/rbi/gems/pry.rbi +1964 -0
  50. data/sorbet/rbi/gems/public_suffix.rbi +1 -1
  51. data/sorbet/rbi/gems/rake.rbi +645 -0
  52. data/sorbet/rbi/gems/rspec-core.rbi +38 -1
  53. data/sorbet/rbi/gems/rubocop.rbi +4 -0
  54. data/sorbet/rbi/gems/simplecov-html.rbi +5 -1
  55. data/sorbet/rbi/gems/simplecov.rbi +143 -17
  56. data/sorbet/rbi/gems/webmock.rbi +0 -4
  57. data/sorbet/rbi/hidden-definitions/errors.txt +7053 -166
  58. data/sorbet/rbi/hidden-definitions/hidden.rbi +12951 -3455
  59. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +3 -1
  60. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +254 -0
  61. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +8 -8
  62. data/sorbet/rbi/todo.rbi +18 -0
  63. metadata +30 -15
  64. data/sorbet/rbi/gems/http_parser.rb.rbi +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a0617a8e641936e3923260982484a3707482d132c318f5f0d6da992811b3693
4
- data.tar.gz: 5080fa5753654f88cae6a5f01de76a2faacae8955b2efde7b4f42b1c139d1a54
3
+ metadata.gz: 761eb94e49a489e9d3d46c0c08e587ca35ac3f261844f41c86d9e53e82884d7f
4
+ data.tar.gz: 250769fefbdd1b167c9d96bbde90d6164c2eeab76b4ed3893a0b6263ea174c80
5
5
  SHA512:
6
- metadata.gz: ceb2ac9432c63c085bc6bbe3276cd5692c4cd9be47ed5ba5f5bb68af6e9556380daebdb3ed561a1b0f81d305480a9e7c8f7d070bc2d1d25608fa1ffa52eedc9c
7
- data.tar.gz: e069b2b8e00157f7fb1124e6b4514ebb3f5219354c79e15e86f26be50c2f99022b2517ca18acfc2aadb2f4df19213796838f86346853ad20d9c0a8e7a45db86b
6
+ metadata.gz: ea05e0d50c97d7b1383ca7ade24f062f5c3aacb897d240f962e570bf28a6bcb71b15857260bbfe49bac323653b8ba1c9387aa68adcc086b42c3868b35b974526
7
+ data.tar.gz: 29962159168a5362a3716c3c53f76461a8c2bfd9f11b3fee37d2ff5f0736ead077915b4374ae5b38979b0ee7120b06ea45d17dd3d1c512cbc2051b3017d2a96c
data/eml.gemspec CHANGED
@@ -22,20 +22,20 @@ Gem::Specification.new do |spec|
22
22
  end
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "http", ">= 4.0.0", "< 5.0"
25
+ spec.add_dependency "http", ">= 4.0.0", "< 6.0"
26
26
  spec.add_dependency "sorbet-runtime"
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 2.0"
29
29
  spec.add_development_dependency "dotenv"
30
30
  spec.add_development_dependency "faker"
31
31
  spec.add_development_dependency "pry-byebug"
32
- spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_development_dependency "rake"
33
33
  spec.add_development_dependency "rspec", "~> 3.8"
34
34
  spec.add_development_dependency "rubocop", "~> 0.71"
35
35
  spec.add_development_dependency "rubocop-performance"
36
36
  spec.add_development_dependency "rubocop-rspec"
37
37
  spec.add_development_dependency "simplecov"
38
- spec.add_development_dependency "sorbet"
38
+ spec.add_development_dependency "sorbet", ">= 0.4.5036", "< 1.0"
39
39
  spec.add_development_dependency "vcr"
40
40
  spec.add_development_dependency "webmock"
41
41
  end
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
data/lib/eml/error/tns.rb CHANGED
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "base64"
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: false
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -61,9 +61,12 @@ module EML
61
61
  sig { returns(T::Hash[Symbol, T.untyped]) }
62
62
  def to_h
63
63
  instance_variables.each_with_object({}) do |variable_name, params|
64
- key = variable_name.to_s[1..-1].to_sym
64
+ key = T.must(variable_name.to_s[1..-1]).to_sym
65
65
  params[key] = instance_variable_get(variable_name)
66
- params[key] = params[key].to_h if params[key].respond_to?(:to_h)
66
+
67
+ if !params[key].nil? && params[key].respond_to?(:to_h)
68
+ params[key] = params[key].to_h
69
+ end
67
70
  end
68
71
  end
69
72
 
@@ -98,7 +101,7 @@ module EML
98
101
 
99
102
  private
100
103
 
101
- sig { params(array: T::Array[String]).returns(String) }
104
+ sig { params(array: T::Array[Symbol]).returns(String) }
102
105
  def array_as_string(array)
103
106
  array.dup.tap { |vals| vals[-1] = "or #{vals.last}" }.join(", ")
104
107
  end
data/lib/eml/payload.rb CHANGED
@@ -62,7 +62,7 @@ module EML
62
62
  sig { returns(T::Hash[Symbol, T.untyped]) }
63
63
  def to_h
64
64
  instance_variables.each_with_object({}) do |variable_name, params|
65
- key = variable_name.to_s[1..-1].to_sym
65
+ key = T.must(variable_name.to_s[1..-1]).to_sym
66
66
  params[key] = instance_variable_get(variable_name)
67
67
  params[key] = params[key].to_h if params[key].respond_to?(:to_h)
68
68
  end
data/lib/eml/response.rb CHANGED
@@ -9,7 +9,7 @@ module EML
9
9
  def self.field(field_name)
10
10
  define_method(field_name) do
11
11
  string_name = field_name.to_s
12
- body[string_name]
12
+ T.unsafe(self).body[string_name]
13
13
  end
14
14
  end
15
15
 
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,6 +6,7 @@ module EML
6
6
  class Parameters
7
7
  module Agreement
8
8
  class Show < ::EML::UK::Parameters
9
+ sig { params(params: T::Hash[T.untyped, T.untyped]).void }
9
10
  def initialize(params)
10
11
  params[:client_language] ||= "en"
11
12
  super
@@ -13,7 +14,7 @@ module EML
13
14
 
14
15
  private
15
16
 
16
- sig { params(client_language: String).returns(String) }
17
+ sig { returns(T.nilable(String)) }
17
18
  attr_accessor :client_language
18
19
  end
19
20
  end
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,10 +6,10 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Activation < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
- sig { params(program: String).returns(String) }
12
+ sig { returns(T.nilable(String)) }
13
13
  attr_accessor :program
14
14
 
15
15
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,12 +6,12 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Lock < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
12
  private
13
13
 
14
- sig { params(program: String).returns(String) }
14
+ sig { returns(T.nilable(String)) }
15
15
  attr_accessor :program
16
16
 
17
17
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,10 +6,10 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Register < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
- sig { params(program: String).returns(String) }
12
+ sig { returns(T.nilable(String)) }
13
13
  attr_accessor :program
14
14
 
15
15
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,10 +6,10 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Reload < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
- sig { params(program: String).returns(String) }
12
+ sig { returns(T.nilable(String)) }
13
13
  attr_accessor :program
14
14
 
15
15
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,10 +6,10 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Show < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
- FIELDS_OPTIONS = %i[
12
+ FIELDS_OPTIONS = T.let(%i[
13
13
  account_expiration_date
14
14
  activating_merchant_group_name
15
15
  activating_merchant_group_uniquetag
@@ -59,7 +59,16 @@ module EML
59
59
  status
60
60
  uri
61
61
  unload_to_ach_fee
62
- ].freeze
62
+ ].freeze, T::Array[Symbol])
63
+
64
+ sig { params(params: T::Hash[Symbol, T.untyped]).void }
65
+ def initialize(params)
66
+ super
67
+
68
+ @fields = T.let(nil, T.nilable(String))
69
+ @log_balance_inquiry = T.let(nil, T.nilable(String))
70
+ @only_valid_status = T.let(nil, T.nilable(String))
71
+ end
63
72
 
64
73
  sig { params(fields: T::Array[Symbol]).returns(String) }
65
74
  def fields=(fields)
@@ -82,7 +91,7 @@ module EML
82
91
  @only_valid_status = only_valid_status.inspect
83
92
  end
84
93
 
85
- sig { params(program: String).returns(String) }
94
+ sig { returns(T.nilable(String)) }
86
95
  attr_accessor :program
87
96
 
88
97
  sig { params(search_parameter: String).returns(String) }
@@ -91,7 +100,7 @@ module EML
91
100
  @search_parameter = search_parameter
92
101
  end
93
102
 
94
- sig { params(security_code: String).returns(String) }
103
+ sig { returns(T.nilable(String)) }
95
104
  attr_accessor :security_code
96
105
  end
97
106
  end
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,12 +6,12 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Transaction < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
12
  private
13
13
 
14
- FIELDS_OPTIONS = %i[
14
+ FIELDS_OPTIONS = T.let(%i[
15
15
  activity
16
16
  amount
17
17
  authorization_request_id
@@ -28,7 +28,14 @@ module EML
28
28
  system_transaction_id
29
29
  timestamp
30
30
  user
31
- ].freeze
31
+ ].freeze, T::Array[Symbol])
32
+
33
+ sig { params(params: T::Hash[Symbol, T.untyped]).void }
34
+ def initialize(params)
35
+ super
36
+
37
+ @fields = T.let(nil, T.nilable(String))
38
+ end
32
39
 
33
40
  sig { params(fields: T::Array[Symbol]).returns(String) }
34
41
  def fields=(fields)
@@ -41,10 +48,10 @@ module EML
41
48
  @fields = fields.join(",")
42
49
  end
43
50
 
44
- sig { params(filter: String).returns(String) }
51
+ sig { returns(T.nilable(String)) }
45
52
  attr_accessor :filter
46
53
 
47
- sig { params(program: String).returns(String) }
54
+ sig { returns(T.nilable(String)) }
48
55
  attr_accessor :program
49
56
 
50
57
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,12 +6,12 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Unload < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
12
  private
13
13
 
14
- sig { params(program: String).returns(String) }
14
+ sig { returns(T.nilable(String)) }
15
15
  attr_accessor :program
16
16
 
17
17
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,12 +6,12 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Unlock < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
12
  private
13
13
 
14
- sig { params(program: String).returns(String) }
14
+ sig { returns(T.nilable(String)) }
15
15
  attr_accessor :program
16
16
 
17
17
  sig { params(search_parameter: String).returns(String) }
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,12 +6,12 @@ module EML
6
6
  class Parameters
7
7
  module Card
8
8
  class Unlock < ::EML::UK::Parameters
9
- REQUIRED_CONFIG = %i[program].freeze
10
- OPTIONAL_CONFIG = %i[search_parameter].freeze
9
+ REQUIRED_CONFIG = T.let(%i[program].freeze, T::Array[Symbol])
10
+ OPTIONAL_CONFIG = T.let(%i[search_parameter].freeze, T::Array[Symbol])
11
11
 
12
12
  private
13
13
 
14
- sig { params(program: String).returns(String) }
14
+ sig { returns(T.nilable(String)) }
15
15
  attr_accessor :program
16
16
 
17
17
  sig { params(search_parameter: String).returns(String) }
@@ -12,6 +12,9 @@ module EML
12
12
  def initialize(params)
13
13
  params = merge_required_config(params)
14
14
  params = merge_optional_config(params)
15
+
16
+ @search_parameter = T.let(nil, T.nilable(String))
17
+
15
18
  super
16
19
  end
17
20
 
@@ -1,25 +1,34 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ # rubocop:disable Naming/VariableName
4
5
  module EML
5
6
  module UK
6
7
  class Payload
7
8
  module Agreement
8
9
  class Show < ::EML::UK::Payload
9
- OPTIONAL_DEFAULTS = %i[merchant_group program].freeze
10
+ OPTIONAL_DEFAULTS =
11
+ T.let(%i[merchant_group program].freeze, T::Array[Symbol])
12
+
13
+ sig { params(payload: T::Hash[Symbol, T.untyped]).void }
14
+ def initialize(payload)
15
+ super
16
+
17
+ @Is_account_expiry = T.let(nil, T.nilable(String))
18
+ @Is_fee_free = T.let(nil, T.nilable(String))
19
+ end
10
20
 
11
21
  private
12
22
 
13
- sig { params(bin: String).returns(String) }
23
+ sig { returns(T.nilable(String)) }
14
24
  attr_accessor :bin
15
25
 
16
- sig { params(country: String).returns(String) }
26
+ sig { returns(T.nilable(String)) }
17
27
  attr_accessor :country
18
28
 
19
- sig { params(developer: String).returns(String) }
29
+ sig { returns(T.nilable(String)) }
20
30
  attr_accessor :developer
21
31
 
22
- # rubocop:disable Naming/VariableName
23
32
  sig { params(is_account_expiry: T::Boolean).returns(String) }
24
33
  def is_account_expiry=(is_account_expiry)
25
34
  @Is_account_expiry = is_account_expiry.inspect
@@ -29,18 +38,18 @@ module EML
29
38
  def is_fee_free=(is_fee_free)
30
39
  @Is_fee_free = is_fee_free.inspect
31
40
  end
32
- # rubocop:enable Naming/VariableName
33
41
 
34
- sig { params(merchant_group: String).returns(String) }
42
+ sig { returns(T.nilable(String)) }
35
43
  attr_accessor :merchant_group
36
44
 
37
- sig { params(program: String).returns(String) }
45
+ sig { returns(T.nilable(String)) }
38
46
  attr_accessor :program
39
47
 
40
- sig { params(region: String).returns(String) }
48
+ sig { returns(T.nilable(String)) }
41
49
  attr_accessor :region
42
50
  end
43
51
  end
44
52
  end
45
53
  end
46
54
  end
55
+ # rubocop:enable Naming/VariableName
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,26 +6,37 @@ module EML
6
6
  class Payload
7
7
  module Card
8
8
  class Activation < ::EML::UK::Payload
9
- REQUIRED_VALUES =
10
- %i[amount location.name location.country sales_channel].freeze
11
- REQUIRED_CONFIG = %i[merchant_group].freeze
9
+ REQUIRED_VALUES = T.let(
10
+ %i[amount location.name location.country sales_channel].freeze,
11
+ T::Array[Symbol]
12
+ )
13
+ REQUIRED_CONFIG = T.let(%i[merchant_group].freeze, T::Array[Symbol])
14
+
15
+ sig { params(payload: T::Hash[Symbol, T.untyped]).void }
16
+ def initialize(payload)
17
+ super
18
+
19
+ @client_reference_number = T.let(nil, T.nilable(String))
20
+ @client_tracking_id = T.let(nil, T.nilable(String))
21
+ @location = T.let(nil, T.nilable(EML::UK::Payload::Location))
22
+ end
12
23
 
13
24
  private
14
25
 
15
- sig { params(amount: Numeric).returns(Numeric) }
26
+ sig { returns(T.nilable(Numeric)) }
16
27
  attr_accessor :amount
17
28
 
18
- sig { params(campaign: String).returns(String) }
29
+ sig { returns(T.nilable(String)) }
19
30
  attr_accessor :campaign
20
31
 
21
- sig { params(cardholder_user_id: String).returns(String) }
32
+ sig { returns(T.nilable(String)) }
22
33
  attr_accessor :cardholder_user_id
23
34
 
24
35
  # While client_order_date is sent to EML as a JSON DateTime,
25
36
  # there are many classes that could be used which causes a typing
26
37
  # challenge. For example, if Rails is in use, we will probably receive
27
38
  # a ActiveSupport::TimeWithZone
28
- sig { params(client_order_date: T.untyped).returns(T.untyped) }
39
+ sig { returns(T.nilable(T.untyped)) }
29
40
  attr_accessor :client_order_date
30
41
 
31
42
  sig { params(client_reference_number: String).void }
@@ -40,7 +51,7 @@ module EML
40
51
  # there are many classes that could be used which causes a typing
41
52
  # challenge. For example, if Rails is in use, we will probably receive
42
53
  # a ActiveSupport::TimeWithZone
43
- sig { params(client_time: T.untyped).returns(T.untyped) }
54
+ sig { returns(T.nilable(T.untyped)) }
44
55
  attr_accessor :client_time
45
56
 
46
57
  sig { params(client_tracking_id: String).void }
@@ -51,20 +62,20 @@ module EML
51
62
  @client_tracking_id = client_tracking_id
52
63
  end
53
64
 
54
- sig { params(location: Hash).void }
65
+ sig { params(location: T::Hash[T.untyped, T.untyped]).void }
55
66
  def location=(location)
56
67
  @location = EML::UK::Payload::Location.new(location)
57
68
  end
58
69
 
59
- sig { params(merchant_group: String).returns(String) }
70
+ sig { returns(T.nilable(String)) }
60
71
  attr_accessor :merchant_group
61
72
 
62
- sig { params(note: String).returns(String) }
73
+ sig { returns(T.nilable(String)) }
63
74
  attr_accessor :note
64
75
 
65
- SALES_CHANNELS = %w[Online InPerson].freeze
76
+ SALES_CHANNELS = T.let(%w[Online InPerson].freeze, T::Array[String])
66
77
 
67
- sig { params(sales_channel: String).returns(String) }
78
+ sig { returns(T.nilable(String)) }
68
79
  attr_accessor :sales_channel
69
80
  end
70
81
  end
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -6,21 +6,28 @@ module EML
6
6
  class Payload
7
7
  module Card
8
8
  class Lock < ::EML::UK::Payload
9
- REQUIRED_CONFIG = %i[merchant_group].freeze
10
- REQUIRED_VALUES = %i[note reason].freeze
9
+ REQUIRED_CONFIG = T.let(%i[merchant_group].freeze, T::Array[Symbol])
10
+ REQUIRED_VALUES = T.let(%i[note reason].freeze, T::Array[Symbol])
11
+
12
+ sig { params(payload: T::Hash[Symbol, T.untyped]).void }
13
+ def initialize(payload)
14
+ super
15
+
16
+ @reason = T.let(nil, T.nilable(Symbol))
17
+ end
11
18
 
12
19
  private
13
20
 
14
- sig { params(merchant_group: String).returns(String) }
21
+ sig { returns(T.nilable(String)) }
15
22
  attr_accessor :merchant_group
16
23
 
17
- sig { params(note: String).returns(String) }
24
+ sig { returns(T.nilable(String)) }
18
25
  attr_accessor :note
19
26
 
20
- REASONS = %i[
27
+ REASONS = T.let(%i[
21
28
  Damaged DataBreach Lost Miscellaneous OfficeError
22
29
  PastAccountExpirationDate Stolen UnclaimedProperty
23
- ].freeze
30
+ ].freeze, T::Array[Symbol])
24
31
 
25
32
  sig { params(reason: Symbol).void }
26
33
  def reason=(reason)
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module EML
@@ -8,8 +8,26 @@ module EML
8
8
  class Register < ::EML::UK::Payload
9
9
  include ISO
10
10
 
11
- REQUIRED_VALUES =
12
- %i[first_name last_name address1 city country email].freeze
11
+ REQUIRED_VALUES = T.let(
12
+ %i[first_name last_name address1 city country email].freeze,
13
+ T::Array[Symbol]
14
+ )
15
+
16
+ # rubocop:disable Metrics/AbcSize
17
+ sig { params(payload: T::Hash[Symbol, T.untyped]).void }
18
+ def initialize(payload)
19
+ super
20
+
21
+ @first_name = T.let(nil, T.nilable(String))
22
+ @last_name = T.let(nil, T.nilable(String))
23
+ @address1 = T.let(nil, T.nilable(String))
24
+ @address2 = T.let(nil, T.nilable(String))
25
+ @city = T.let(nil, T.nilable(String))
26
+ @dob = T.let(nil, T.nilable(T.any(Date, String, Time)))
27
+ @email = T.let(nil, T.nilable(String))
28
+ @phone = T.let(nil, T.nilable(String))
29
+ end
30
+ # rubocop:enable Metrics/AbcSize
13
31
 
14
32
  private
15
33
 
@@ -62,7 +80,7 @@ module EML
62
80
  @phone = phone
63
81
  end
64
82
 
65
- sig { params(postal_code: String).returns(String) }
83
+ sig { returns(T.nilable(String)) }
66
84
  attr_accessor :postal_code
67
85
  end
68
86
  end