Merge branch 'feature/api_remove_project' of /home/git/repositories/gitlab/gitlabhq

This commit is contained in:
Dmitriy Zaporozhets 2013-10-09 13:22:37 +00:00
commit 7af1bc3b88
4 changed files with 60 additions and 1 deletions

View file

@ -244,6 +244,18 @@ Parameters:
+ `public` (optional)
## Remove project
Removes project with all resources(issues, merge requests etc)
```
DELETE /projects/:id
```
Parameters:
+ `id` (required) - The ID of a project
## Team members

View file

@ -66,7 +66,6 @@ module API
present group, with: Entities::GroupDetail
end
# Remove group
#
# Parameters:

View file

@ -129,6 +129,16 @@ module API
end
end
# Remove project
#
# Parameters:
# id (required) - The ID of a project
# Example Request:
# DELETE /projects/:id
delete ":id" do
authorize! :remove_project, user_project
user_project.destroy
end
# Mark this project as forked from another
#

View file

@ -730,4 +730,42 @@ describe API::API do
end
end
end
describe "DELETE /projects/:id" do
context "when authenticated as user" do
it "should remove project" do
delete api("/projects/#{project.id}", user)
response.status.should == 200
end
it "should not remove a project if not an owner" do
user3 = create(:user)
project.team << [user3, :developer]
delete api("/projects/#{project.id}", user3)
response.status.should == 403
end
it "should not remove a non existing project" do
delete api("/projects/1328", user)
response.status.should == 404
end
it "should not remove a project not attached to user" do
delete api("/projects/#{project.id}", user2)
response.status.should == 404
end
end
context "when authenticated as admin" do
it "should remove any existing project" do
delete api("/projects/#{project.id}", admin)
response.status.should == 200
end
it "should not remove a non existing project" do
delete api("/projects/1328", admin)
response.status.should == 404
end
end
end
end