lib/eml/uk/payload/card/activation.rb in eml-2.1.8 vs lib/eml/uk/payload/card/activation.rb in eml-2.2.0
- old
+ new
@@ -1,33 +1,44 @@
-# typed: true
+# typed: strict
# frozen_string_literal: true
module EML
module UK
class Payload
module Card
class Activation < ::EML::UK::Payload
- REQUIRED_VALUES =
- %i[amount location.name location.country sales_channel].freeze
- REQUIRED_CONFIG = %i[merchant_group].freeze
+ REQUIRED_VALUES = T.let(
+ %i[amount location.name location.country sales_channel].freeze,
+ T::Array[Symbol]
+ )
+ REQUIRED_CONFIG = T.let(%i[merchant_group].freeze, T::Array[Symbol])
+ sig { params(payload: T::Hash[Symbol, T.untyped]).void }
+ def initialize(payload)
+ super
+
+ @client_reference_number = T.let(nil, T.nilable(String))
+ @client_tracking_id = T.let(nil, T.nilable(String))
+ @location = T.let(nil, T.nilable(EML::UK::Payload::Location))
+ end
+
private
- sig { params(amount: Numeric).returns(Numeric) }
+ sig { returns(T.nilable(Numeric)) }
attr_accessor :amount
- sig { params(campaign: String).returns(String) }
+ sig { returns(T.nilable(String)) }
attr_accessor :campaign
- sig { params(cardholder_user_id: String).returns(String) }
+ sig { returns(T.nilable(String)) }
attr_accessor :cardholder_user_id
# While client_order_date is sent to EML as a JSON DateTime,
# there are many classes that could be used which causes a typing
# challenge. For example, if Rails is in use, we will probably receive
# a ActiveSupport::TimeWithZone
- sig { params(client_order_date: T.untyped).returns(T.untyped) }
+ sig { returns(T.nilable(T.untyped)) }
attr_accessor :client_order_date
sig { params(client_reference_number: String).void }
def client_reference_number=(client_reference_number)
validate_max_length(
@@ -38,34 +49,34 @@
# While client_time is sent to EML as a JSON DateTime,
# there are many classes that could be used which causes a typing
# challenge. For example, if Rails is in use, we will probably receive
# a ActiveSupport::TimeWithZone
- sig { params(client_time: T.untyped).returns(T.untyped) }
+ sig { returns(T.nilable(T.untyped)) }
attr_accessor :client_time
sig { params(client_tracking_id: String).void }
def client_tracking_id=(client_tracking_id)
validate_max_length(
:client_tracking_id, client_tracking_id, 50
)
@client_tracking_id = client_tracking_id
end
- sig { params(location: Hash).void }
+ sig { params(location: T::Hash[T.untyped, T.untyped]).void }
def location=(location)
@location = EML::UK::Payload::Location.new(location)
end
- sig { params(merchant_group: String).returns(String) }
+ sig { returns(T.nilable(String)) }
attr_accessor :merchant_group
- sig { params(note: String).returns(String) }
+ sig { returns(T.nilable(String)) }
attr_accessor :note
- SALES_CHANNELS = %w[Online InPerson].freeze
+ SALES_CHANNELS = T.let(%w[Online InPerson].freeze, T::Array[String])
- sig { params(sales_channel: String).returns(String) }
+ sig { returns(T.nilable(String)) }
attr_accessor :sales_channel
end
end
end
end