eml 2.1.7 → 3.0.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.
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)