Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LoginUser
- include Interactor
- def call
- oauthprovider = OauthProvider.where(provider: context.provider, uid: context.uid.to_s).first
- return oauthprovider.user if oauthprovider
- return unless context.auth.info['email']
- email = context.auth.info['email']
- user = User.find_by(email: email)
- if user
- user = OauthProvider.create(provider: context.auth.provider, uid: context.auth.uid) # or User.update
- else
- password = Devise.friendly_token[0, 20]
- user = User.create!(email: email, password: password, password_confirmation: password)
- user.find_for_oauth(provider: context.auth.provider, uid: context.auth.uid)
- end
- end
- end
Add Comment
Please, Sign In to add comment