summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Ziebell <sebastian.ziebell@asquera.de>2013-02-27 12:34:45 +0100
committerSebastian Ziebell <sebastian.ziebell@asquera.de>2013-02-27 12:34:45 +0100
commit873db06255eae1f69644c2a0815b88c923021c8f (patch)
tree4eb4f79fa60af18bb298a2515c527a86081f274f
parente119b0a0cb33b1b7f2dafcf17c2a94af40aed833 (diff)
downloadgitlab-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.md30
-rw-r--r--lib/api/groups.rb11
-rw-r--r--spec/requests/api/groups_spec.rb10
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