From 30d73782c895bba171a600d15869809d48d1777b Mon Sep 17 00:00:00 2001 From: carlad Date: Wed, 20 Apr 2016 11:33:20 +0200 Subject: [PATCH] add error check to build restart and cancel --- lib/travis/api/v3.rb | 23 +++++++++++++---------- lib/travis/api/v3/queries/build.rb | 2 ++ lib/travis/api/v3/queries/job.rb | 4 ++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/travis/api/v3.rb b/lib/travis/api/v3.rb index 59add8e6..0c7c3ae7 100644 --- a/lib/travis/api/v3.rb +++ b/lib/travis/api/v3.rb @@ -25,19 +25,22 @@ module Travis load_dir("#{__dir__}/v3") ClientError = Error .create(status: 400) - NotFound = ClientError .create(:resource, status: 404, template: '%s not found (or insufficient access)') - EntityMissing = NotFound .create(type: 'not_found') - WrongCredentials = ClientError .create('access denied', status: 403) - LoginRequired = ClientError .create('login required', status: 403) - InsufficientAccess = ClientError .create(status: 403) - WrongParams = ClientError .create('wrong parameters') ServerError = Error .create(status: 500) + NotFound = ClientError .create(:resource, status: 404, template: '%s not found (or insufficient access)') + + AlreadySyncing = ClientError .create('sync already in progress', status: 409) + BuildAlreadyRunning = ClientError .create('build already running', status: 409) + BuildNotCancelable = ClientError .create('build is not running, cannot cancel', status: 409) + EntityMissing = NotFound .create(type: 'not_found') + InsufficientAccess = ClientError .create(status: 403) + JobAlreadyRunning = ClientError .create('job already running', status: 409) + JobNotCancelable = ClientError .create('job is not running, cannot cancel', status: 409) + LoginRequired = ClientError .create('login required', status: 403) + MethodNotAllowed = ClientError .create('method not allowed', status: 405) NotImplemented = ServerError .create('request not (yet) implemented', status: 501) RequestLimitReached = ClientError .create('request limit reached for resource', status: 429) - AlreadySyncing = ClientError .create('sync already in progress', status: 409) - AlreadyRunning = ClientError .create('job already running', status: 409) - NotCancelable = ClientError .create('job is not running, cannot cancel', status: 409) - MethodNotAllowed = ClientError .create('method not allowed', status: 405) + WrongCredentials = ClientError .create('access denied', status: 403) + WrongParams = ClientError .create('wrong parameters') end end end diff --git a/lib/travis/api/v3/queries/build.rb b/lib/travis/api/v3/queries/build.rb index 540837d7..5314a7c9 100644 --- a/lib/travis/api/v3/queries/build.rb +++ b/lib/travis/api/v3/queries/build.rb @@ -8,12 +8,14 @@ module Travis::API::V3 end def cancel(user) + raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state payload = { id: id, user_id: user.id, source: 'api' } perform_async(:build_cancellation, payload) payload end def restart(user) + raise BuildAlreadyRunning if %w(received queued started).include? find.state payload = { id: id, user_id: user.id, source: 'api' } perform_async(:build_restart, payload) payload diff --git a/lib/travis/api/v3/queries/job.rb b/lib/travis/api/v3/queries/job.rb index 91ad3b84..ba824d4d 100644 --- a/lib/travis/api/v3/queries/job.rb +++ b/lib/travis/api/v3/queries/job.rb @@ -8,14 +8,14 @@ module Travis::API::V3 end def cancel(user) - raise NotCancelable if %w(passed failed canceled errored).include? find.state + raise JobNotCancelable if %w(passed failed canceled errored).include? find.state payload = { id: id, user_id: user.id, source: 'api' } perform_async(:job_cancellation, payload) payload end def restart(user) - raise AlreadyRunning if %w(received queued started).include? find.state + raise JobAlreadyRunning if %w(received queued started).include? find.state payload = { id: id, user_id: user.id, source: 'api' } perform_async(:job_restart, payload) payload