DRY up log patching logic

Move the shared logic into a Helpers method so that there is no
code duplication
This commit is contained in:
Hiro Asari 2014-06-11 18:07:12 -04:00
parent 8da49332d6
commit cc03c5458a
3 changed files with 19 additions and 24 deletions

View File

@ -3,6 +3,8 @@ require 'travis/api/app'
class Travis::Api::App
class Endpoint
class Jobs < Endpoint
include Helpers
get '/' do
prefer_follower do
respond_with service(:find_jobs, params)
@ -65,17 +67,7 @@ class Travis::Api::App
end
patch '/:id/log', scope: :private do |id|
# PATCH method for `RemoveLog` service, since we are replacing log content
service = self.service(:remove_log, params)
begin
respond_with service.run
rescue Travis::AuthorizationDenied => e
status 401
{ error: { message: e.message } }
rescue Travis::JobUnfinished, Travis::LogAlreadyRemoved => e
status 409
{ error: { message: e.message } }
end
patch_log_for_job(id, params)
end
get "/:job_id/annotations" do

View File

@ -4,6 +4,7 @@ class Travis::Api::App
class Endpoint
# Logs are generated by builds.
class Logs < Endpoint
include Helpers
# Fetches a log by its *id*.
get '/:id' do |id|
respond_with service(:find_log, params)
@ -12,19 +13,7 @@ class Travis::Api::App
# Clears up the content of the log by the *job id*
# Optionally takes parameter *reason*
patch '/:id' do |id|
begin
result = self.service(:remove_log, params)
respond_with result
rescue Travis::AuthorizationDenied => ade
status 401
{ error: { message: ade.message } }
rescue Travis::JobUnfinished, Travis::LogAlreadyRemoved => e
status 409
{ error: { message: e.message } }
rescue => e
status 500
{ error: { message: "Unexpected error occurred: #{e.message}" } }
end
patch_log_for_job(id, params)
end
end
end

View File

@ -4,5 +4,19 @@ class Travis::Api::App
# Namespace for helpers.
module Helpers
Backports.require_relative_dir 'helpers'
def patch_log_for_job(id, params)
result = self.service(:remove_log, params)
respond_with result
rescue Travis::AuthorizationDenied => ade
status 401
{ error: { message: ade.message } }
rescue Travis::JobUnfinished, Travis::LogAlreadyRemoved => e
status 409
{ error: { message: e.message } }
rescue => e
status 500
{ error: { message: "Unexpected error occurred: #{e.message}" } }
end
end
end