diff options
author | Sebastian Ziebell <sebastian.ziebell@asquera.de> | 2013-02-27 12:34:45 +0100 |
---|---|---|
committer | Sebastian Ziebell <sebastian.ziebell@asquera.de> | 2013-02-27 12:34:45 +0100 |
commit | 873db06255eae1f69644c2a0815b88c923021c8f (patch) | |
tree | 4eb4f79fa60af18bb298a2515c527a86081f274f | |
parent | e119b0a0cb33b1b7f2dafcf17c2a94af40aed833 (diff) | |
download | gitlab-ce-873db06255eae1f69644c2a0815b88c923021c8f.tar.gz |
API: groups documentation updated, functions return different status codes
Updates the API documentation of groups with infos to return codes. The function calls
in the groups API have updated documentation and return `400 Bad Request` status code
if a required attribute is missing.
-rw-r--r-- | doc/api/groups.md | 30 | ||||
-rw-r--r-- | lib/api/groups.rb | 11 | ||||
-rw-r--r-- | spec/requests/api/groups_spec.rb | 10 |
3 files changed, 44 insertions, 7 deletions
diff --git a/doc/api/groups.md b/doc/api/groups.md index 00a7387c76f..c97851a5db3 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -17,7 +17,14 @@ GET /groups ] ``` -## Details of group +Return values: + ++ `200 Ok` on success and list of groups ++ `401 Unauthorized` if user is not authenticated ++ `404 Not Found` if something fails + + +## Details of a group Get all details of a group. @@ -29,17 +36,30 @@ Parameters: + `id` (required) - The ID of a group +Return values: + ++ `200 Ok` on success and the details of a group ++ `401 Unauthorized` if user not authenticated ++ `404 Not Found` if group ID not found + + ## New group -Create a new project group. Available only for admin +Creates a new project group. Available only for admin. ``` POST /groups ``` Parameters: -+ `name` (required) - Email -+ `path` - Password -Will return created group with status `201 Created` on success, or `404 Not found` on fail. ++ `name` (required) - The name of the group ++ `path` (required) - The path of the group + +Return valueS: + ++ `201 Created` on success and the newly created group ++ `400 Bad Request` if one of the required attributes not given ++ `401 Unauthorized` if user is not authenticated ++ `404 Not Found` if something fails diff --git a/lib/api/groups.rb b/lib/api/groups.rb index a67caef0bc5..3f213073f80 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -6,6 +6,9 @@ module Gitlab resource :groups do # Get a groups list # + # Parameters + # page (optional) - The page number of the groups list + # per_page (optional) - The number of elements per page # Example Request: # GET /groups get do @@ -20,12 +23,16 @@ module Gitlab # Create group. Available only for admin # # Parameters: - # name (required) - Name - # path (required) - Path + # name (required) - The name of the group + # path (required) - The path of the group # Example Request: # POST /groups post do authenticated_as_admin! + + bad_request!(:name) unless params[:name].present? + bad_request!(:path) unless params[:path].present? + attrs = attributes_for_keys [:name, :path] @group = Group.new(attrs) @group.owner = current_user diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index c39a4228408..df658a8cb07 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -88,6 +88,16 @@ describe Gitlab::API do post api("/groups", admin), {:name => "Duplicate Test", :path => group2.path} response.status.should == 404 end + + it "should return 400 bad request error if name not given" do + post api("/groups", admin), { :path => group2.path } + response.status.should == 400 + end + + it "should return 400 bad request error if path not given" do + post api("/groups", admin), { :name => 'test' } + response.status.should == 400 + end end end end |