v3: start working on jobs api

This commit is contained in:
Konstantin Haase 2015-05-21 17:49:37 +02:00
parent 0cdecaade3
commit ce521f0277
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,14 @@
module Travis::API::V3
class Queries::Jobs < Query
PENDING = %w[started queued created]
private_constant :PENDING
def pending(*repos)
for_owner(owner, state: PENDING)
end
def for_repos(*repos, **filters)
Models::Job.where(repository_id: repos.map(&:id), **filters)
end
end
end

View File

@ -12,6 +12,7 @@ module Travis::API::V3
route '/owner/({owner.login}|{user.login}|{organization.login})' route '/owner/({owner.login}|{user.login}|{organization.login})'
get :find get :find
get :repositories, '/repos' get :repositories, '/repos'
get :pending_jobs, '/queue'
end end
resource :repository do resource :repository do

View File

@ -0,0 +1,11 @@
module Travis::API::V3
class Services::Owner::PendingJobs < Service
result_type :jobs
def run!
unfiltered = query(:repositories).for_owner(find(:owner))
repositories = access_control.visible_repositories(unfiltered)
query(:jobs).pending(*repositories)
end
end
end