summaryrefslogtreecommitdiff
path: root/lib/api/projects.rb
diff options
context:
space:
mode:
authorSebastian Ziebell <sebastian.ziebell@asquera.de>2013-02-08 16:33:15 +0100
committerSebastian Ziebell <sebastian.ziebell@asquera.de>2013-02-08 16:48:05 +0100
commit9544f9038981b881b539419be72276b2b2fd079f (patch)
tree2b87e53d4ccb6d8935c34de3675a63c463ab72d9 /lib/api/projects.rb
parent818caf0b5d1fc4f0cb2889ca5bd9e2d0d7fd8ac8 (diff)
downloadgitlab-ce-9544f9038981b881b539419be72276b2b2fd079f.tar.gz
Adding a project hook returns status code 400 if url is not given
When adding a project hook a url must be specified or a 400 error code is returned * Specs added to check status code on handling project hooks * refactored code, extracted a method
Diffstat (limited to 'lib/api/projects.rb')
-rw-r--r--lib/api/projects.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index e6df6b4ee88..f1e0f32e606 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -4,6 +4,15 @@ module Gitlab
before { authenticate! }
resource :projects do
+ helpers do
+ def handle_project_member_errors(errors)
+ if errors[:project_access].any?
+ error!(errors[:project_access], 422)
+ end
+ not_found!
+ end
+ end
+
# Get a projects list for authenticated user
#
# Example Request:
@@ -36,6 +45,7 @@ module Gitlab
# Example Request
# POST /projects
post do
+ error!("Name is required", 400) if !params.has_key? :name
attrs = attributes_for_keys [:name,
:description,
:default_branch,
@@ -43,6 +53,7 @@ module Gitlab
:wall_enabled,
:merge_requests_enabled,
:wiki_enabled]
+
@project = ::Projects::CreateContext.new(current_user, attrs).execute
if @project.saved?
present @project, with: Entities::Project
@@ -106,10 +117,7 @@ module Gitlab
@member = team_member.user
present @member, with: Entities::ProjectMember, project: user_project
else
- if team_member.errors[:project_access].any?
- error!(team_member.errors[:project_access], 422)
- end
- not_found!
+ handle_project_member_errors team_member.errors
end
end
@@ -132,10 +140,7 @@ module Gitlab
@member = team_member.user
present @member, with: Entities::ProjectMember, project: user_project
else
- if team_member.errors[:project_access].any?
- error!(team_member.errors[:project_access], 422)
- end
- not_found!
+ handle_project_member_errors team_member.errors
end
end
@@ -210,8 +215,9 @@ module Gitlab
@hook = user_project.hooks.find(params[:hook_id])
authorize! :admin_project, user_project
- attrs = attributes_for_keys [:url]
+ error!("Url not given", 400) if !params.has_key? :url
+ attrs = attributes_for_keys [:url]
if @hook.update_attributes attrs
present @hook, with: Entities::Hook
else