Class: SpreeCmCommissioner::UserIdTokenAuthenticator
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::UserIdTokenAuthenticator
- Defined in:
- app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb
Instance Method Summary collapse
-
#call ⇒ Object
:id_token, :tenant_id (optional).
- #checker ⇒ Object
- #register_user ⇒ Object
- #update_user_email ⇒ Object
Instance Method Details
#call ⇒ Object
:id_token, :tenant_id (optional)
4 5 6 7 8 9 10 11 |
# File 'app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb', line 4 def call context.user = checker.user || register_user context.fail!(message: I18n.t('authenticator.incorrect_login')) if context.user.nil? update_user_email if context.user.email.blank? context.fail!(message: 'account_temporarily_deleted') if context.user.soft_deleted? end |
#checker ⇒ Object
30 31 32 33 |
# File 'app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb', line 30 def checker @checker ||= SpreeCmCommissioner::UserIdTokenChecker.call(id_token: context.id_token, tenant_id: context.tenant_id) @checker end |
#register_user ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb', line 13 def register_user register_context = SpreeCmCommissioner::UserRegistrationWithIdToken.call( id_token: context.id_token, tenant_id: context.tenant_id ) register_context.user end |
#update_user_email ⇒ Object
22 23 24 25 26 27 28 |
# File 'app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb', line 22 def update_user_email firebase_context = FirebaseIdTokenProvider.call(id_token: context.id_token) return unless firebase_context.success? email = firebase_context.provider[:email] context.user.update(email: email) if email.present? end |