diff --git a/CHANGELOG b/CHANGELOG index 696837564e0511f4dbcc7a98cc650b6c0321c767..c365a55ba64d532767c68032543c020d63dcd779 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,7 +4,7 @@ master - Fixed bug with gitolite keys - [API] list one project hook - [API] edit project hook - - [API] add project snippets list + - [API] list project snippets - [API] allow to authorize using private token in HTTP header - [API] add user creation diff --git a/doc/api/users.md b/doc/api/users.md index 63271ee83b08811c6d93f7d6c3d97e0f47bda980..c116144d91e5fdacd8a4139649d9aba0099aedbb 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -74,14 +74,12 @@ POST /users Parameters: + `email` (required) - Email -+ `name` (required) - Name + `password` (required) - Password -+ `password_confirmation` (required) - Password confirmation ++ `name` - Name + `skype` - Skype ID + `linkedin` - Linkedin + `twitter` - Twitter account -+ `projects_limit` - Limit projects wich user can create - ++ `projects_limit` - Number of projects user can create Will return created user with status `201 Created` on success, or `404 Not found` on fail. diff --git a/lib/api/users.rb b/lib/api/users.rb index 7f548aaa667b3312287c86f6b8b98892aafe52d9..57e0aa108cfb8cd8dc78f7b869f0a75bdf9bfddc 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -23,24 +23,23 @@ module Gitlab @user = User.find(params[:id]) present @user, with: Entities::User end - + # Create user. Available only for admin # # Parameters: # email (required) - Email - # name (required) - Name # password (required) - Password - # password_confirmation (required) - Password confirmation + # name - Name # skype - Skype ID # linkedin - Linkedin # twitter - Twitter account - # projects_limit - Limit projects wich user can create + # projects_limit - Number of projects user can create # Example Request: # POST /users post do authenticated_as_admin! - attrs = attributes_for_keys [:email, :name, :password, :password_confirmation, :skype, :linkedin, :twitter, :projects_limit] - user = User.new attrs + attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit] + user = User.new attrs, as: :admin if user.save present user, with: Entities::User else diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 51526f89fbad20f12721a3fd328f06a18d985d6d..5f9a587d57a8aac57e642a95842248601f11cfaa 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -46,7 +46,7 @@ describe Gitlab::API do response.status.should == 201 end - it "should repsond with 404 on failure" do + it "should respond with 404 on failure" do post api("/projects", user) response.status.should == 404 end @@ -188,16 +188,16 @@ describe Gitlab::API do }.to change {project.hooks.count}.by(1) end end - + describe "PUT /projects/:id/hooks/:hook_id" do it "should update an existing project hook" do put api("/projects/#{project.code}/hooks/#{hook.id}", user), - url: 'http://example.com' + url: 'http://example.org' response.status.should == 200 - json_response['url'].should == 'http://example.com' + json_response['url'].should == 'http://example.org' end end - + describe "DELETE /projects/:id/hooks" do it "should delete hook from project" do @@ -239,7 +239,7 @@ describe Gitlab::API do end describe "GET /projects/:id/snippets" do - it "should return a project snippet" do + it "should return an array of project snippets" do get api("/projects/#{project.code}/snippets", user) response.status.should == 200 json_response.should be_an Array diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index e3049e0901687f1cf06e47ea9ab4a3ff14f62050..4c2e6adaf7f78f6775e35eabb041e666848c9fd2 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -4,7 +4,7 @@ describe Gitlab::API do include ApiHelpers let(:user) { Factory :user } - let(:admin) {Factory :admin} + let(:admin) { Factory :admin } let(:key) { Factory :key, user: user } describe "GET /users" do @@ -42,9 +42,9 @@ describe Gitlab::API do end it "should create user" do - expect{ - post api("/users", admin), Factory.attributes(:user) - }.to change{User.count}.by(1) + expect { + post api("/users", admin), Factory.attributes(:user, projects_limit: 3) + }.to change { User.count }.by(1) end it "shouldn't available for non admin users" do