summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2017-01-04 09:23:46 +0100
committerRobert Schilling <rschilling@student.tugraz.at>2017-01-04 09:23:46 +0100
commitf3a2de36eba9aa0368b53db9aa41690422676a40 (patch)
tree6b32d1f710988f45b26f64ce4f9eb68f4f3085c3
parent8daff07ca70aeefb0fc11541b77298570de4f47e (diff)
downloadgitlab-ce-api-refactor-issues-filter.tar.gz
Refactor issues filter in APIapi-refactor-issues-filter
-rw-r--r--lib/api/issues.rb27
1 files changed, 8 insertions, 19 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index 91f65882f47..4136d2fb3f9 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -5,14 +5,6 @@ module API
before { authenticate! }
helpers do
- def filter_issues_state(issues, state)
- case state
- when 'opened' then issues.opened
- when 'closed' then issues.closed
- else issues
- end
- end
-
def filter_issues_labels(issues, labels)
issues.includes(:labels).where('labels.title' => labels.split(','))
end
@@ -50,9 +42,8 @@ module API
use :issues_params
end
get do
- issues = current_user.issues.inc_notes_with_associations
- issues = filter_issues_state(issues, params[:state])
- issues = filter_issues_labels(issues, params[:labels]) unless params[:labels].nil?
+ issues = IssuesFinder.new(current_user, scope: 'all', author_id: current_user.id, state: params[:state], label_name: params[:labels]).execute.inc_notes_with_associations
+ pp issues
issues = issues.reorder(params[:order_by] => params[:sort])
present paginate(issues), with: Entities::Issue, current_user: current_user
@@ -99,16 +90,14 @@ module API
use :issues_params
end
get ":id/issues" do
- issues = IssuesFinder.new(current_user, project_id: user_project.id).execute.inc_notes_with_associations
- issues = filter_issues_state(issues, params[:state])
- issues = filter_issues_labels(issues, params[:labels]) unless params[:labels].nil?
+ issues = IssuesFinder.new(current_user,
+ project_id: user_project.id,
+ state: params[:state],
+ label_name: params[:label],
+ milestone_title: params[:milestone]).execute.inc_notes_with_associations
issues = filter_by_iid(issues, params[:iid]) unless params[:iid].nil?
-
- unless params[:milestone].nil?
- issues = filter_issues_milestone(issues, params[:milestone])
- end
-
issues = issues.reorder(params[:order_by] => params[:sort])
+
present paginate(issues), with: Entities::Issue, current_user: current_user, project: user_project
end