From 32f1eaaf0f966ccc45635693679bcc8658e71815 Mon Sep 17 00:00:00 2001 From: Sebastian Ziebell Date: Thu, 7 Mar 2013 17:56:11 +0100 Subject: API: system hooks API functions and documentation updated * updated system hooks documentation and code comments * fixed access to system hooks if no user given resulting in a `500 Server Error` * added tests --- lib/api/system_hooks.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/api/system_hooks.rb b/lib/api/system_hooks.rb index 665a1cdd0d2..da0b005d69d 100644 --- a/lib/api/system_hooks.rb +++ b/lib/api/system_hooks.rb @@ -1,7 +1,10 @@ module Gitlab # Hooks API class SystemHooks < Grape::API - before { authenticated_as_admin! } + before { + authenticate! + authenticated_as_admin! + } resource :hooks do # Get the list of system hooks @@ -21,6 +24,7 @@ module Gitlab # POST /hooks post do attrs = attributes_for_keys [:url] + required_attributes! [:url] @hook = SystemHook.new attrs if @hook.save present @hook, with: Entities::Hook @@ -47,13 +51,19 @@ module Gitlab data end - # Delete a hook - # + # Delete a hook. This is an idempotent function. + # + # Parameters: + # id (required) - ID of the hook # Example Request: # DELETE /hooks/:id delete ":id" do - @hook = SystemHook.find(params[:id]) - @hook.destroy + begin + @hook = SystemHook.find(params[:id]) + @hook.destroy + rescue + # SystemHook raises an Error if no hook with id found + end end end end -- cgit v1.2.1