diff --git a/lib/travis/api/app/endpoint/jobs.rb b/lib/travis/api/app/endpoint/jobs.rb index e7af7d32..a6d4b8a7 100644 --- a/lib/travis/api/app/endpoint/jobs.rb +++ b/lib/travis/api/app/endpoint/jobs.rb @@ -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 diff --git a/lib/travis/api/app/endpoint/logs.rb b/lib/travis/api/app/endpoint/logs.rb index 2db13baf..a7bda278 100644 --- a/lib/travis/api/app/endpoint/logs.rb +++ b/lib/travis/api/app/endpoint/logs.rb @@ -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 diff --git a/lib/travis/api/app/helpers.rb b/lib/travis/api/app/helpers.rb index a009b025..fe1cfd02 100644 --- a/lib/travis/api/app/helpers.rb +++ b/lib/travis/api/app/helpers.rb @@ -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