diff options
author | Sebastian Ziebell <sebastian.ziebell@asquera.de> | 2013-02-08 16:33:15 +0100 |
---|---|---|
committer | Sebastian Ziebell <sebastian.ziebell@asquera.de> | 2013-02-08 16:48:05 +0100 |
commit | 9544f9038981b881b539419be72276b2b2fd079f (patch) | |
tree | 2b87e53d4ccb6d8935c34de3675a63c463ab72d9 /lib/api/projects.rb | |
parent | 818caf0b5d1fc4f0cb2889ca5bd9e2d0d7fd8ac8 (diff) | |
download | gitlab-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.rb | 24 |
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 |