Compare commits
5 Commits
master
...
rkh-v3-job
Author | SHA1 | Date | |
---|---|---|---|
![]() |
381b9b2c76 | ||
![]() |
b32b5088f5 | ||
![]() |
2455cf3c42 | ||
![]() |
be64e36102 | ||
![]() |
ce521f0277 |
14
lib/travis/api/v3/queries/jobs.rb
Normal file
14
lib/travis/api/v3/queries/jobs.rb
Normal 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
|
15
lib/travis/api/v3/renderer/job.rb
Normal file
15
lib/travis/api/v3/renderer/job.rb
Normal 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
|
6
lib/travis/api/v3/renderer/jobs.rb
Normal file
6
lib/travis/api/v3/renderer/jobs.rb
Normal file
|
@ -0,0 +1,6 @@
|
|||
module Travis::API::V3
|
||||
class Renderer::Jobs < Renderer::CollectionRenderer
|
||||
type :jobs
|
||||
collection_key :jobs
|
||||
end
|
||||
end
|
|
@ -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
|
||||
|
|
11
lib/travis/api/v3/services/owner/pending_jobs.rb
Normal file
11
lib/travis/api/v3/services/owner/pending_jobs.rb
Normal 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
|
Loading…
Reference in New Issue
Block a user