Compare commits

...

5 Commits

Author SHA1 Message Date
Konstantin Haase
381b9b2c76 add jobs renderer 2015-05-27 15:19:49 +02:00
Konstantin Haase
b32b5088f5 fix copy pasta 2015-05-27 15:19:41 +02:00
Konstantin Haase
2455cf3c42 add job renderer 2015-05-27 15:17:26 +02:00
Konstantin Haase
be64e36102 Merge branch 'master' into rkh-v3-jobs 2015-05-26 17:12:08 +02:00
Konstantin Haase
ce521f0277 v3: start working on jobs api 2015-05-21 17:49:37 +02:00
5 changed files with 47 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

@ -0,0 +1,15 @@
require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3
class Renderer::Jobs < Renderer::ModelRenderer
representation(:minimal, :id, :number, :state, :duration, :started_at, :finished_at, :allow_failure, :queue)
representation(:standard, *representations[:minimal], :repository, :build, :commit)
def queue
{
:@type => 'queue'.freeze,
:name => model.queue
}
end
end
end

View File

@ -0,0 +1,6 @@
module Travis::API::V3
class Renderer::Jobs < Renderer::CollectionRenderer
type :jobs
collection_key :jobs
end
end

View File

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