summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2014-09-02 09:14:20 +0200
committerRobert Schilling <rschilling@student.tugraz.at>2014-09-02 09:14:20 +0200
commit4cfafd447515ee5c7b881fc46a345c181a6656e7 (patch)
tree0e3df0dc949e93031e560053eda20122a6d1cee0 /lib/api
parent8f3585fe4a6e4a72dbc8f1ce962af29ab3f7f448 (diff)
parent7f9fa8c18726cafc28c083852863246ce7da7f39 (diff)
downloadgitlab-ce-4cfafd447515ee5c7b881fc46a345c181a6656e7.tar.gz
Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/issues.rb27
1 files changed, 23 insertions, 4 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index eb6a74cd2bc..299fd7e2399 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -3,13 +3,28 @@ module API
class Issues < Grape::API
before { authenticate! }
+ helpers do
+ def filter_issues_state(issues, state = nil)
+ case state
+ when 'opened' then issues.opened
+ when 'closed' then issues.closed
+ else issues
+ end
+ end
+ end
+
resource :issues do
# Get currently authenticated user's issues
#
- # Example Request:
+ # Parameters:
+ # state (optional) - Return "opened" or "closed" issues
+ #
+ # Example Requests:
# GET /issues
+ # GET /issues?state=opened
+ # GET /issues?state=closed
get do
- present paginate(current_user.issues), with: Entities::Issue
+ present paginate(filter_issues_state(current_user.issues, params['state'])), with: Entities::Issue
end
end
@@ -18,10 +33,14 @@ module API
#
# Parameters:
# id (required) - The ID of a project
- # Example Request:
+ # state (optional) - Return "opened" or "closed" issues
+ #
+ # Example Requests:
# GET /projects/:id/issues
+ # GET /projects/:id/issues?state=opened
+ # GET /projects/:id/issues?state=closed
get ":id/issues" do
- present paginate(user_project.issues), with: Entities::Issue
+ present paginate(filter_issues_state(user_project.issues, params['state'])), with: Entities::Issue
end
# Get a single project issue