travis-api/lib/travis/api/v3/services/find_repository.rb
2015-01-21 16:38:25 +01:00

23 lines
680 B
Ruby

module Travis::API::V3
class Services::FindRepository < Service
params :id, :github_id, :slug, optional: true
def run
raise NotFound, :repository unless repository and access_control.visible? repository
Result.new(:repository, repository)
end
def repository
raise EntityMissing, :repository if defined?(@repository) and @repository.nil?
@repository ||= find_repository
end
def find_repository
return ::Repository.find_by_id(id) if id
return ::Repository.find_by_github_id(github_id) if github_id
return ::Repository.by_slug(slug).first if slug
raise WrongParams
end
end
end