eml 2.1.7 → 3.0.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 +24 -5
  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: 846ccc3bd37c580251647b13b542ddcb4c47d3994c18e5f45b089340c3126674
4
- data.tar.gz: 1825e8ae55783b8b4a3a037aa5901a43487c2a87abb462e036507da17c1af4a1
3
+ metadata.gz: d246c2e9d4e83abe7e41de1b8a59d1cb49d613feacc1e8770a0b6822a3258ceb
4
+ data.tar.gz: 9f0eeae719f211e35884258231fb0a8334dd88d5465e3e67914dc209423fc093
5
5
  SHA512:
6
- metadata.gz: a709b50d218cbb20fd6831cf8fcaa67e9975e89c7de5f86cd9213207cb90e617c3b87777b7a7e9fe62862417286fdf234d6148f39c7c7785ce226435803f6d81
7
- data.tar.gz: 34c115ec04f45ee7f6d6b9d50e05168b06cd673624dcc7f9e81cd0735c9d287b88b92258e0417e242b6a897cf7290764a3d380ad376fbb08595a77905c1708ed
6
+ metadata.gz: f36721335d14c073c6156b6c18c414868fb3912ed549f32e0f04e56d9224c58bc49af7392e96f8a33d024229aeda92f58655bd8a3a887e9f7675f50b6f4a8277
7
+ data.tar.gz: 5a130b69b6c1cae7c93deba21060a48302fc38d327ce71531a80864e524c1fa4fa507bb52f15cf5d7c2d76e2137a47f8fa56fdba08a1380fe0f9bc750105798d
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)