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:
parent
8da49332d6
commit
cc03c5458a
|
@ -3,6 +3,8 @@ require 'travis/api/app'
|
||||||
class Travis::Api::App
|
class Travis::Api::App
|
||||||
class Endpoint
|
class Endpoint
|
||||||
class Jobs < Endpoint
|
class Jobs < Endpoint
|
||||||
|
include Helpers
|
||||||
|
|
||||||
get '/' do
|
get '/' do
|
||||||
prefer_follower do
|
prefer_follower do
|
||||||
respond_with service(:find_jobs, params)
|
respond_with service(:find_jobs, params)
|
||||||
|
@ -65,17 +67,7 @@ class Travis::Api::App
|
||||||
end
|
end
|
||||||
|
|
||||||
patch '/:id/log', scope: :private do |id|
|
patch '/:id/log', scope: :private do |id|
|
||||||
# PATCH method for `RemoveLog` service, since we are replacing log content
|
patch_log_for_job(id, params)
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
get "/:job_id/annotations" do
|
get "/:job_id/annotations" do
|
||||||
|
|
|
@ -4,6 +4,7 @@ class Travis::Api::App
|
||||||
class Endpoint
|
class Endpoint
|
||||||
# Logs are generated by builds.
|
# Logs are generated by builds.
|
||||||
class Logs < Endpoint
|
class Logs < Endpoint
|
||||||
|
include Helpers
|
||||||
# Fetches a log by its *id*.
|
# Fetches a log by its *id*.
|
||||||
get '/:id' do |id|
|
get '/:id' do |id|
|
||||||
respond_with service(:find_log, params)
|
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*
|
# Clears up the content of the log by the *job id*
|
||||||
# Optionally takes parameter *reason*
|
# Optionally takes parameter *reason*
|
||||||
patch '/:id' do |id|
|
patch '/:id' do |id|
|
||||||
begin
|
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
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,5 +4,19 @@ class Travis::Api::App
|
||||||
# Namespace for helpers.
|
# Namespace for helpers.
|
||||||
module Helpers
|
module Helpers
|
||||||
Backports.require_relative_dir '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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user