class Models::Users::User

Public Class Methods

authenticate(user_id, application_id, omniauth) click to toggle source
# File lib/restpack_user_service/models/user.rb, line 16
def self.authenticate(user_id, application_id, omniauth)
  authentication = Authentication.get_by_omniauth(application_id, omniauth)
  if authentication
    return authentication.user
  else
    if user_id.blank?
      user = User.new(application_id: application_id)
    else
      user = User.find(user_id)
    end
    [:name, :nickname, :email, :image, :location, :description].each do |attribute|
      user[attribute] ||= omniauth['info'][attribute.to_s]
    end

    user.save!
    user.authentications << Authentication.from_omniauth(application_id, omniauth)
    user
  end
end