class Commands::Users::User::OmniAuthenticate

Public Instance Methods

execute() click to toggle source
# File lib/restpack_user_service/commands/user/omni_authenticate.rb, line 20
def execute
  user = Models::Users::User.authenticate(
    user_id,
    application_id,
    raw_inputs[:omniauth_response]
  )

  if user
    record_activity(user, inputs)
    return Serializers::Users::User.resource(user)
  else
    status :unauthorized
  end
end

Private Instance Methods

record_activity(user, inputs) click to toggle source
# File lib/restpack_user_service/commands/user/omni_authenticate.rb, line 37
def record_activity(user, inputs)
  provider = inputs[:omniauth_response][:provider]
  type = 'login' #TODO: GJ: differentiate between login and signup
  Messaging::Activity::Create.run({
    application_id: inputs[:application_id],
    user_id: user.id,
    content: "#{user.name} logged in via #{inputs[:omniauth_response][:provider]}",
    tags: "service:users,auth:#{type},provider:#{provider}"
  })
end