diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2017-01-04 09:23:46 +0100 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2017-01-04 09:23:46 +0100 |
commit | f3a2de36eba9aa0368b53db9aa41690422676a40 (patch) | |
tree | 6b32d1f710988f45b26f64ce4f9eb68f4f3085c3 | |
parent | 8daff07ca70aeefb0fc11541b77298570de4f47e (diff) | |
download | gitlab-ce-api-refactor-issues-filter.tar.gz |
Refactor issues filter in APIapi-refactor-issues-filter
-rw-r--r-- | lib/api/issues.rb | 27 |
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 |