21 lines
536 B
Ruby
21 lines
536 B
Ruby
module Travis::API::V3
|
|
class Queries::User < Query
|
|
params :id, :login, :email
|
|
|
|
def find
|
|
return Models::User.find_by_id(id) if 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
|