From 8e6dbf9319700f8767420f139e39fda7254245ac Mon Sep 17 00:00:00 2001 From: carlad Date: Thu, 27 Aug 2015 11:00:09 +0200 Subject: [PATCH] v3 add /job/:id endpoint --- lib/travis/api/v3/access_control/generic.rb | 4 ++++ lib/travis/api/v3/queries/job.rb | 10 ++++++++++ lib/travis/api/v3/routes.rb | 6 ++++++ lib/travis/api/v3/services.rb | 1 + lib/travis/api/v3/services/job/find.rb | 7 +++++++ 5 files changed, 28 insertions(+) create mode 100644 lib/travis/api/v3/queries/job.rb create mode 100644 lib/travis/api/v3/services/job/find.rb diff --git a/lib/travis/api/v3/access_control/generic.rb b/lib/travis/api/v3/access_control/generic.rb index c6bab377..7f006029 100644 --- a/lib/travis/api/v3/access_control/generic.rb +++ b/lib/travis/api/v3/access_control/generic.rb @@ -55,6 +55,10 @@ module Travis::API::V3 visible? branch.repository end + def job_visible?(job) + visible? job.repository + end + def organization_visible?(organization) full_access? or public_api? end diff --git a/lib/travis/api/v3/queries/job.rb b/lib/travis/api/v3/queries/job.rb new file mode 100644 index 00000000..b25781cb --- /dev/null +++ b/lib/travis/api/v3/queries/job.rb @@ -0,0 +1,10 @@ +module Travis::API::V3 + class Queries::Job < Query + params :id + + def find + return Models::Job.find_by_id(id) if id + raise WrongParams, 'missing build.id'.freeze + end + end +end diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index 710621b0..cf0a3731 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -50,6 +50,12 @@ module Travis::API::V3 get :find end + resource :job do + capture id: :digit + route '/job/{job.id}' + get :find + end + resource :user do capture id: :digit route '/user' diff --git a/lib/travis/api/v3/services.rb b/lib/travis/api/v3/services.rb index 85ecef01..a25984f1 100644 --- a/lib/travis/api/v3/services.rb +++ b/lib/travis/api/v3/services.rb @@ -6,6 +6,7 @@ module Travis::API::V3 Branch = Module.new { extend Services } Build = Module.new { extend Services } Builds = Module.new { extend Services } + Job = Module.new { extend Services } Organization = Module.new { extend Services } Organizations = Module.new { extend Services } Owner = Module.new { extend Services } diff --git a/lib/travis/api/v3/services/job/find.rb b/lib/travis/api/v3/services/job/find.rb new file mode 100644 index 00000000..e8d20316 --- /dev/null +++ b/lib/travis/api/v3/services/job/find.rb @@ -0,0 +1,7 @@ +module Travis::API::V3 + class Services::Job::Find < Service + def run! + find + end + end +end