Class: DPay::BlikRecurringRegistration
- Inherits:
-
Object
- Object
- DPay::BlikRecurringRegistration
- Defined in:
- lib/dpay/blik/blik_recurring_registration.rb,
sig/dpay/blik/blik_recurring_registration.rbs
Constant Summary collapse
- MODELS =
%w[A M O].freeze
- FREQUENCY =
/\A[1-9][0-9]{0,2}[DWMQY]\z/- DATE =
/\A\d{4}-\d{2}-\d{2}\z/
Class Method Summary collapse
Instance Method Summary collapse
- #assert_date(date) ⇒ String
-
#initialize(label, model, frequency) ⇒ BlikRecurringRegistration
constructor
A new instance of BlikRecurringRegistration.
- #to_h ⇒ Hash[String, untyped]
- #with_expiration_date(expiration_date) ⇒ self
- #with_init_date(init_date) ⇒ self
- #with_limit_amt(limit_amt) ⇒ self
- #with_limit_amt_fixed(fixed) ⇒ self
- #with_tot_limit_amt(tot_limit_amt) ⇒ self
- #with_value(value) ⇒ self
Constructor Details
#initialize(label, model, frequency) ⇒ BlikRecurringRegistration
Returns a new instance of BlikRecurringRegistration.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 13 def initialize(label, model, frequency) unless label.is_a?(String) && !label.empty? && label.length <= 50 raise InvalidArgumentError, "Alias label must be 1-50 characters" end raise InvalidArgumentError, %(Invalid recurring model "#{model}") unless MODELS.include?(model) raise InvalidArgumentError, %(Invalid recurring frequency "#{frequency}") unless FREQUENCY.match?(frequency.to_s) @label = label @model = model @frequency = frequency @optional = {} end |
Class Method Details
.create(label, model, frequency) ⇒ BlikRecurringRegistration
9 10 11 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 9 def self.create(label, model, frequency) new(label, model, frequency) end |
Instance Method Details
#assert_date(date) ⇒ String
68 69 70 71 72 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 68 def assert_date(date) raise InvalidArgumentError, %(Date "#{date}" must be in YYYY-MM-DD format) unless DATE.match?(date.to_s) date end |
#to_h ⇒ Hash[String, untyped]
56 57 58 59 60 61 62 63 64 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 56 def to_h base = { "label" => @label, "type" => BlikAliasType::PAYID, "model" => @model, "frequency" => @frequency } %w[value limit_amt tot_limit_amt is_limit_amt_fixed expiration_date init_date].each do |key| base[key] = @optional[key] if @optional.key?(key) end base end |
#with_expiration_date(expiration_date) ⇒ self
46 47 48 49 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 46 def with_expiration_date(expiration_date) @optional["expiration_date"] = assert_date(expiration_date) self end |
#with_init_date(init_date) ⇒ self
51 52 53 54 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 51 def with_init_date(init_date) @optional["init_date"] = assert_date(init_date) self end |
#with_limit_amt(limit_amt) ⇒ self
31 32 33 34 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 31 def with_limit_amt(limit_amt) @optional["limit_amt"] = limit_amt self end |
#with_limit_amt_fixed(fixed) ⇒ self
41 42 43 44 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 41 def with_limit_amt_fixed(fixed) @optional["is_limit_amt_fixed"] = fixed self end |
#with_tot_limit_amt(tot_limit_amt) ⇒ self
36 37 38 39 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 36 def with_tot_limit_amt(tot_limit_amt) @optional["tot_limit_amt"] = tot_limit_amt self end |
#with_value(value) ⇒ self
26 27 28 29 |
# File 'lib/dpay/blik/blik_recurring_registration.rb', line 26 def with_value(value) @optional["value"] = value.to_decimal self end |