Class: Booth::Userland::Onboardings::Transitions::Update::ResetOtp

Inherits:
Object
  • Object
show all
Includes:
Concerns::Transition
Defined in:
lib/booth/userland/onboardings/transitions/update/reset_otp.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.applicable?(params:) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/booth/userland/onboardings/transitions/update/reset_otp.rb', line 11

def self.applicable?(params:)
  params.key?(:reset_otp)
end

Instance Method Details

#callObject



15
16
17
18
# File 'lib/booth/userland/onboardings/transitions/update/reset_otp.rb', line 15

def call
  do_regenerate_secret
    .on_success { do_reset_confirmation }
end

#do_regenerate_secretObject



20
21
22
23
24
# File 'lib/booth/userland/onboardings/transitions/update/reset_otp.rb', line 20

def do_regenerate_secret
  return Tron.success :secret_regenerated if onboarding.otp_regenerate_secret

  Tron.failure :secret_regeneration_failed
end

#do_reset_confirmationObject



26
27
28
29
30
31
32
33
34
# File 'lib/booth/userland/onboardings/transitions/update/reset_otp.rb', line 26

def do_reset_confirmation
  if onboarding.update(otp_registered_at: nil, otp_confirmed_at: nil)
    debug { 'The Onboarding otp was reset.' }
    return Tron.success :otp_reset
  end

  debug { "Could not reset otp: #{onboarding.errors.to_a.to_sentence}" }
  Tron.failure :otp_reset_failed
end