Guest User

Untitled

a guest
Jul 9th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. class LoginUser
  2. include Interactor
  3.  
  4. def call
  5. oauthprovider = OauthProvider.where(provider: context.provider, uid: context.uid.to_s).first
  6. return oauthprovider.user if oauthprovider
  7.  
  8. return unless context.auth.info['email']
  9.  
  10. email = context.auth.info['email']
  11. user = User.find_by(email: email)
  12. if user
  13. user = OauthProvider.create(provider: context.auth.provider, uid: context.auth.uid) # or User.update
  14. else
  15. password = Devise.friendly_token[0, 20]
  16. user = User.create!(email: email, password: password, password_confirmation: password)
  17. user.find_for_oauth(provider: context.auth.provider, uid: context.auth.uid)
  18. end
  19. end
  20. end
Add Comment
Please, Sign In to add comment