From 5295d0c3ee8f561cedee8b9f729dbfea661b1da2 Mon Sep 17 00:00:00 2001 From: Lennard Wolf Date: Thu, 5 Nov 2015 15:11:31 +0100 Subject: [PATCH] add nonworking implementation of /cron/cron.id/delete --- lib/travis/api/v3/access_control/generic.rb | 4 ++++ lib/travis/api/v3/permissions/cron.rb | 9 +++++++++ lib/travis/api/v3/routes.rb | 2 ++ lib/travis/api/v3/services/cron/delete.rb | 12 ++++++++++++ lib/travis/api/v3/services/cron/find.rb | 1 + 5 files changed, 28 insertions(+) create mode 100644 lib/travis/api/v3/permissions/cron.rb create mode 100644 lib/travis/api/v3/services/cron/delete.rb diff --git a/lib/travis/api/v3/access_control/generic.rb b/lib/travis/api/v3/access_control/generic.rb index a00a6c58..634d44dd 100644 --- a/lib/travis/api/v3/access_control/generic.rb +++ b/lib/travis/api/v3/access_control/generic.rb @@ -63,6 +63,10 @@ module Travis::API::V3 visible? cron.repository end + def cron_writable?(cron) + writable? cron.repository + end + def job_visible?(job) visible? job.repository end diff --git a/lib/travis/api/v3/permissions/cron.rb b/lib/travis/api/v3/permissions/cron.rb new file mode 100644 index 00000000..815dd17c --- /dev/null +++ b/lib/travis/api/v3/permissions/cron.rb @@ -0,0 +1,9 @@ +require 'travis/api/v3/permissions/generic' + +module Travis::API::V3 + class Permissions::Cron < Permissions::Generic + def delete? + write? + end + end +end diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index 6482c1d4..afb6b910 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -33,6 +33,8 @@ module Travis::API::V3 route '/cron/{cron.id}' get :find + get :delete, '/delete' + end resource :job do diff --git a/lib/travis/api/v3/services/cron/delete.rb b/lib/travis/api/v3/services/cron/delete.rb new file mode 100644 index 00000000..24753439 --- /dev/null +++ b/lib/travis/api/v3/services/cron/delete.rb @@ -0,0 +1,12 @@ +module Travis::API::V3 + class Services::Cron::Delete < Service + #params :id + + def run! + raise LoginRequired unless access_control.logged_in? or access_control.full_access? + + access_control.permissions(cron).delete! + find.destroy + end + end +end diff --git a/lib/travis/api/v3/services/cron/find.rb b/lib/travis/api/v3/services/cron/find.rb index a7ea8958..6a028079 100644 --- a/lib/travis/api/v3/services/cron/find.rb +++ b/lib/travis/api/v3/services/cron/find.rb @@ -3,6 +3,7 @@ module Travis::API::V3 #params :id def run! + find end