Class: SpreeCmCommissioner::UserForgottenPasswordUpdater
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::UserForgottenPasswordUpdater
- Defined in:
- app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb
Instance Method Summary collapse
-
#call ⇒ Object
:email, :phone_number, :country_code :pin_code, :pin_code_token, :password, :password_confirmation.
- #email ⇒ Object
- #find_user_by_login! ⇒ Object
- #phone_number ⇒ Object
- #reset_password! ⇒ Object
- #validate_pin_code! ⇒ Object
Instance Method Details
#call ⇒ Object
:email, :phone_number, :country_code :pin_code, :pin_code_token, :password, :password_confirmation
5 6 7 8 9 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 5 def call find_user_by_login! validate_pin_code! reset_password! end |
#email ⇒ Object
15 16 17 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 15 def email context.email&.strip end |
#find_user_by_login! ⇒ Object
19 20 21 22 23 24 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 19 def find_user_by_login! login = phone_number || email context.user = Spree.user_class.find_user_by_login(login) context.fail!(message: I18n.t('account_checker.verify.not_exist', login: login)) if context.user.blank? end |
#phone_number ⇒ Object
11 12 13 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 11 def phone_number context.phone_number&.strip end |
#reset_password! ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 37 def reset_password! ok = context.user.reset_password(context.password, context.password_confirmation) if ok SpreeCmCommissioner::PinCode.mark_expired!(context.pin_code_token) else context.fail!(message: context.user.errors..join("\n").presence) end end |
#validate_pin_code! ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb', line 26 def validate_pin_code! = context.to_h.slice(:email, :phone_number, :country_code, :pin_code, :pin_code_token) [:type] = 'SpreeCmCommissioner::PinCodeForgetPassword' [:long_life_pin_code] = true pin_code_checker = SpreeCmCommissioner::PinCodeChecker.call() return if pin_code_checker.success? context.fail!(message: pin_code_checker.) end |