Skip to content

Commit

Permalink
Merge pull request #1735 from NARKOZ/api
Browse files Browse the repository at this point in the history
API fixes
  • Loading branch information
vsizov committed Nov 7, 2012
2 parents 10d881c + cf70439 commit d6a5e3d
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 20 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG
Expand Up @@ -28,7 +28,7 @@ v 3.0.0
- Reject ssh keys that break gitolite - Reject ssh keys that break gitolite
- [API] list one project hook - [API] list one project hook
- [API] edit 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] allow to authorize using private token in HTTP header
- [API] add user creation - [API] add user creation


Expand Down
6 changes: 2 additions & 4 deletions doc/api/users.md
Expand Up @@ -74,14 +74,12 @@ POST /users


Parameters: Parameters:
+ `email` (required) - Email + `email` (required) - Email
+ `name` (required) - Name
+ `password` (required) - Password + `password` (required) - Password
+ `password_confirmation` (required) - Password confirmation + `name` - Name
+ `skype` - Skype ID + `skype` - Skype ID
+ `linkedin` - Linkedin + `linkedin` - Linkedin
+ `twitter` - Twitter account + `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 Will return created user with status `201 Created` on success, or `404 Not
found` on fail. found` on fail.
Expand Down
11 changes: 5 additions & 6 deletions lib/api/users.rb
Expand Up @@ -23,24 +23,23 @@ class Users < Grape::API
@user = User.find(params[:id]) @user = User.find(params[:id])
present @user, with: Entities::User present @user, with: Entities::User
end end

# Create user. Available only for admin # Create user. Available only for admin
# #
# Parameters: # Parameters:
# email (required) - Email # email (required) - Email
# name (required) - Name
# password (required) - Password # password (required) - Password
# password_confirmation (required) - Password confirmation # name - Name
# skype - Skype ID # skype - Skype ID
# linkedin - Linkedin # linkedin - Linkedin
# twitter - Twitter account # twitter - Twitter account
# projects_limit - Limit projects wich user can create # projects_limit - Number of projects user can create
# Example Request: # Example Request:
# POST /users # POST /users
post do post do
authenticated_as_admin! authenticated_as_admin!
attrs = attributes_for_keys [:email, :name, :password, :password_confirmation, :skype, :linkedin, :twitter, :projects_limit] attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit]
user = User.new attrs user = User.new attrs, as: :admin
if user.save if user.save
present user, with: Entities::User present user, with: Entities::User
else else
Expand Down
10 changes: 5 additions & 5 deletions spec/requests/api/projects_spec.rb
Expand Up @@ -46,7 +46,7 @@
response.status.should == 201 response.status.should == 201
end end


it "should repsond with 404 on failure" do it "should respond with 404 on failure" do
post api("/projects", user) post api("/projects", user)
response.status.should == 404 response.status.should == 404
end end
Expand Down Expand Up @@ -188,16 +188,16 @@
}.to change {project.hooks.count}.by(1) }.to change {project.hooks.count}.by(1)
end end
end end

describe "PUT /projects/:id/hooks/:hook_id" do describe "PUT /projects/:id/hooks/:hook_id" do
it "should update an existing project hook" do it "should update an existing project hook" do
put api("/projects/#{project.code}/hooks/#{hook.id}", user), put api("/projects/#{project.code}/hooks/#{hook.id}", user),
url: 'http://example.com' url: 'http://example.org'
response.status.should == 200 response.status.should == 200
json_response['url'].should == 'http://example.com' json_response['url'].should == 'http://example.org'
end end
end end



describe "DELETE /projects/:id/hooks" do describe "DELETE /projects/:id/hooks" do
it "should delete hook from project" do it "should delete hook from project" do
Expand Down
8 changes: 4 additions & 4 deletions spec/requests/api/users_spec.rb
Expand Up @@ -4,7 +4,7 @@
include ApiHelpers include ApiHelpers


let(:user) { Factory :user } let(:user) { Factory :user }
let(:admin) {Factory :admin} let(:admin) { Factory :admin }
let(:key) { Factory :key, user: user } let(:key) { Factory :key, user: user }


describe "GET /users" do describe "GET /users" do
Expand Down Expand Up @@ -42,9 +42,9 @@
end end


it "should create user" do it "should create user" do
expect{ expect {
post api("/users", admin), Factory.attributes(:user) post api("/users", admin), Factory.attributes(:user, projects_limit: 3)
}.to change{User.count}.by(1) }.to change { User.count }.by(1)
end end


it "shouldn't available for non admin users" do it "shouldn't available for non admin users" do
Expand Down

0 comments on commit d6a5e3d

Please sign in to comment.