Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-04-07 11:45:35 +0300
committerRémy Coutable <remy@rymai.me>2016-04-07 11:45:35 +0300
commit92897d7683bdf17da9708e065465d55ecd808dff (patch)
tree97a5ed37f718928665ce792d16c65dff9724243a /lib
parent8eae7b10888826bf3497fc219ee59435288c4cc6 (diff)
parente6215a9a8ed20354782120a7ce6368c7e8aab9a5 (diff)
Merge branch 'api-filter-milestone' into 'master'
API: Ability to filter milestones by state Ability to filter milestones by `active` and `closed` state. * Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/14931 See merge request !3566
Diffstat (limited to 'lib')
-rw-r--r--lib/api/milestones.rb20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb
index c5cd73943fb..afb6ffa3609 100644
--- a/lib/api/milestones.rb
+++ b/lib/api/milestones.rb
@@ -3,17 +3,33 @@ module API
class Milestones < Grape::API
before { authenticate! }
+ helpers do
+ def filter_milestones_state(milestones, state)
+ case state
+ when 'active' then milestones.active
+ when 'closed' then milestones.closed
+ else milestones
+ end
+ end
+ end
+
resource :projects do
# Get a list of project milestones
#
# Parameters:
- # id (required) - The ID of a project
+ # id (required) - The ID of a project
+ # state (optional) - Return "active" or "closed" milestones
# Example Request:
# GET /projects/:id/milestones
+ # GET /projects/:id/milestones?state=active
+ # GET /projects/:id/milestones?state=closed
get ":id/milestones" do
authorize! :read_milestone, user_project
- present paginate(user_project.milestones), with: Entities::Milestone
+ milestones = user_project.milestones
+ milestones = filter_milestones_state(milestones, params[:state])
+
+ present paginate(milestones), with: Entities::Milestone
end
# Get a single project milestone