travis-api/lib/travis/api/v3/queries/user.rb
2015-10-28 13:13:02 +01:00

22 lines
616 B
Ruby

module Travis::API::V3
class Queries::User < Query
params :id, :login, :email, :github_id
def find
return Models::User.find_by_id(id) if id
return Models::User.find_by_github_id(github_id) if github_id
return Models::User.where('lower(login) = ?'.freeze, login.downcase).first if login
return find_by_email(email) if email
raise WrongParams, 'missing user.id or user.login'.freeze
end
def find_by_email(email)
if email_model = Models::Email.find_by_email(email)
email_model.user
else
User.find_by_email(email)
end
end
end
end