summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSebastian Ziebell <sebastian.ziebell@asquera.de>2013-03-07 17:56:11 +0100
committerSebastian Ziebell <sebastian.ziebell@asquera.de>2013-03-07 17:56:11 +0100
commit32f1eaaf0f966ccc45635693679bcc8658e71815 (patch)
treefb2b5dc19ea14ae1e9fb3f50b896e4e047f8e21d /lib
parentecf53bb9e616b724bafc939d5e74744e774e3fd2 (diff)
downloadgitlab-ce-32f1eaaf0f966ccc45635693679bcc8658e71815.tar.gz
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
Diffstat (limited to 'lib')
-rw-r--r--lib/api/system_hooks.rb20
1 files changed, 15 insertions, 5 deletions
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