Commit 5be0265fe7e82a127e9fd2805e81e4e40f5e3c5f

Authored by Sebastian Ziebell
1 parent 41e93bbf

Status code 400 returned if title not given in a milestone (via API)

If a milestone is created via API but no title given then status code 400 (Bad request)
is returned instead of 404. A small helper method handles the errors collection of a
milestone.
Showing 1 changed file with 16 additions and 0 deletions   Show diff stats
lib/api/milestones.rb
@@ -4,6 +4,20 @@ module Gitlab @@ -4,6 +4,20 @@ module Gitlab
4 before { authenticate! } 4 before { authenticate! }
5 5
6 resource :projects do 6 resource :projects do
  7 +
  8 + helpers do
  9 + # If an error occurs this helper method handles error codes for a given milestone
  10 + #
  11 + # Parameters:
  12 + # milestone_errors (required) - The erros collection of a milestone
  13 + #
  14 + def handle_milestone_errors(milestone_errors)
  15 + if milestone_errors[:title].any?
  16 + error!(milestone_errors[:title], 400)
  17 + end
  18 + end
  19 + end
  20 +
7 # Get a list of project milestones 21 # Get a list of project milestones
8 # 22 #
9 # Parameters: 23 # Parameters:
@@ -47,6 +61,7 @@ module Gitlab @@ -47,6 +61,7 @@ module Gitlab
47 if @milestone.save 61 if @milestone.save
48 present @milestone, with: Entities::Milestone 62 present @milestone, with: Entities::Milestone
49 else 63 else
  64 + handle_milestone_errors(@milestone.errors)
50 not_found! 65 not_found!
51 end 66 end
52 end 67 end
@@ -70,6 +85,7 @@ module Gitlab @@ -70,6 +85,7 @@ module Gitlab
70 if @milestone.update_attributes attrs 85 if @milestone.update_attributes attrs
71 present @milestone, with: Entities::Milestone 86 present @milestone, with: Entities::Milestone
72 else 87 else
  88 + handle_milestone_errors(@milestone.errors)
73 not_found! 89 not_found!
74 end 90 end
75 end 91 end