before { authenticate! }
resource :projects do
-
helpers do
- # If an error occurred this helper method provides an appropriate status code
- #
- # Parameters:
- # 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)
+ def handle_merge_request_errors!(errors)
+ if errors[:project_access].any?
+ error!(errors[:project_access], 422)
end
+ not_found!
end
end
merge_request.reload_code
present merge_request, with: Entities::MergeRequest
else
- handle_merge_request_error(merge_request.errors)
- not_found!
+ handle_merge_request_errors! merge_request.errors
end
end
merge_request.mark_as_unchecked
present merge_request, with: Entities::MergeRequest
else
- handle_merge_request_error(merge_request.errors)
- not_found!
+ handle_merge_request_errors! merge_request.errors
end
end
end
end
- # Delete project hook
+ # Deletes project hook. This is an idempotent function.
#
# Parameters:
# id (required) - The ID of a project
@hook = ProjectHook.find(params[:hook_id])
@hook.destroy
rescue
+ # ProjectHook can raise Error if hook_id not found
end
end