Class: SpreeCmCommissioner::UserPinCodeAuthenticator
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::UserPinCodeAuthenticator
- Defined in:
- app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb
Instance Method Summary collapse
- #assign_role(user) ⇒ Object
- #call ⇒ Object
- #mark_pin_code_expired! ⇒ Object
- #register_user! ⇒ Object
- #sanitize_contact ⇒ Object
- #validate_pin_code! ⇒ Object
Instance Method Details
#assign_role(user) ⇒ Object
45 46 47 48 49 50 51 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 45 def assign_role(user) role = Spree::Role.find_by(name: context.role) return unless role user.assigned_roles = [role.name] user.spree_roles << role end |
#call ⇒ Object
3 4 5 6 7 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 3 def call validate_pin_code! register_user! mark_pin_code_expired! end |
#mark_pin_code_expired! ⇒ Object
53 54 55 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 53 def mark_pin_code_expired! SpreeCmCommissioner::PinCode.mark_expired!(context.pin_code_token) end |
#register_user! ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 29 def register_user! sanitize_contact fields = i[first_name last_name password password_confirmation phone_number email gender dob] = context.to_h.slice(*fields) user = Spree::User.new() user.confirmed_at = Time.zone.now assign_role(user) if context.role.present? if user.save context.user = user else context.fail!(message: user.errors..join('\n')) end end |
#sanitize_contact ⇒ Object
9 10 11 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 9 def sanitize_contact context.email = nil if context.phone_number.present? end |
#validate_pin_code! ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb', line 13 def validate_pin_code! = context.to_h.slice(:email, :phone_number) [:pin_code] = context.pin_code [:pin_code_token] = context.pin_code_token [:id] = context.pin_code_token [:type] = 'SpreeCmCommissioner::PinCodeRegistration' [:long_life_pin_code] = true pin_code_checker = SpreeCmCommissioner::PinCodeChecker.call() return if pin_code_checker.success? context.fail!(message: pin_code_checker.) end |