Skip to content
Snippets Groups Projects
Commit b5ef6d22 authored by Sebastian Ziebell's avatar Sebastian Ziebell
Browse files

API: refactored and simplified error handling in merge requests API

parent cce35b6d
Branches
Tags
No related merge requests found
Loading
@@ -4,21 +4,12 @@ module Gitlab
Loading
@@ -4,21 +4,12 @@ module Gitlab
before { authenticate! } before { authenticate! }
   
resource :projects do resource :projects do
helpers do helpers do
# If an error occurred this helper method provides an appropriate status code def handle_merge_request_errors!(errors)
# if errors[:project_access].any?
# Parameters: error!(errors[:project_access], 422)
# merge_request_errors (required) - The errors collection of MR
#
def handle_merge_request_error(merge_request_errors)
if merge_request_errors[:target_branch].any?
bad_request!(:target_branch)
elsif merge_request_errors[:source_branch].any?
bad_request!(:source_branch)
elsif merge_request_errors[:base].any?
error!(merge_request_errors[:base], 422)
end end
not_found!
end end
end end
   
Loading
@@ -78,8 +69,7 @@ module Gitlab
Loading
@@ -78,8 +69,7 @@ module Gitlab
merge_request.reload_code merge_request.reload_code
present merge_request, with: Entities::MergeRequest present merge_request, with: Entities::MergeRequest
else else
handle_merge_request_error(merge_request.errors) handle_merge_request_errors! merge_request.errors
not_found!
end end
end end
   
Loading
@@ -107,8 +97,7 @@ module Gitlab
Loading
@@ -107,8 +97,7 @@ module Gitlab
merge_request.mark_as_unchecked merge_request.mark_as_unchecked
present merge_request, with: Entities::MergeRequest present merge_request, with: Entities::MergeRequest
else else
handle_merge_request_error(merge_request.errors) handle_merge_request_errors! merge_request.errors
not_found!
end end
end end
   
Loading
Loading
Loading
@@ -233,7 +233,7 @@ module Gitlab
Loading
@@ -233,7 +233,7 @@ module Gitlab
end end
end end
   
# Delete project hook # Deletes project hook. This is an idempotent function.
# #
# Parameters: # Parameters:
# id (required) - The ID of a project # id (required) - The ID of a project
Loading
@@ -248,6 +248,7 @@ module Gitlab
Loading
@@ -248,6 +248,7 @@ module Gitlab
@hook = ProjectHook.find(params[:hook_id]) @hook = ProjectHook.find(params[:hook_id])
@hook.destroy @hook.destroy
rescue rescue
# ProjectHook can raise Error if hook_id not found
end end
end end
   
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment