From edf60ca0a8b9d5072267de96c6aac349a756885c Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 9 Mar 2023 09:40:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/issues_controller.rb | 3 ++- app/services/api/v1/issues/list_service.rb | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/issues_controller.rb b/app/controllers/api/v1/issues_controller.rb index 9dc94caae..d07807202 100644 --- a/app/controllers/api/v1/issues_controller.rb +++ b/app/controllers/api/v1/issues_controller.rb @@ -10,7 +10,7 @@ class Api::V1::IssuesController < Api::V1::BaseController @opened_issues_count = @object_result[:opened_issues_count] @closed_issues_count = @object_result[:closed_issues_count] if params[:only_name].present? - @issues = kaminary_select_paginate(@object_result[:data].select(:id, :subject, :project_issues_index)) + @issues = kaminary_select_paginate(@object_result[:data]) else @issues = kaminari_paginate(@object_result[:data]) end @@ -86,6 +86,7 @@ class Api::V1::IssuesController < Api::V1::BaseController def query_params params.permit( + :only_name, :category, :participant_category, :keyword, :author_id, diff --git a/app/services/api/v1/issues/list_service.rb b/app/services/api/v1/issues/list_service.rb index 7019dc8e4..67bc84c5e 100644 --- a/app/services/api/v1/issues/list_service.rb +++ b/app/services/api/v1/issues/list_service.rb @@ -1,7 +1,7 @@ class Api::V1::Issues::ListService < ApplicationService include ActiveModel::Model - attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids + attr_reader :project, :only_name, :category, :participant_category, :keyword, :author_id, :issue_tag_ids attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count @@ -13,6 +13,7 @@ class Api::V1::Issues::ListService < ApplicationService def initialize(project, params, current_user=nil) @project = project + @only_name = params[:only_name] @category = params[:category] || 'all' @participant_category = params[:participant_category] || 'all' @keyword = params[:keyword] @@ -81,9 +82,13 @@ class Api::V1::Issues::ListService < ApplicationService issues = issues.opened end - scope = issues.includes(:priority, :issue_status, :user, :show_assigners, :show_issue_tags, :version, :comment_journals) - - scope = scope.reorder("#{sort_by} #{sort_direction}").distinct + if only_name.present? + scope = issues.select(:id, :subject, :project_issues_index) + scope = scope.reorder("project_issues_index asc").distinct + else + scope = issues.includes(:priority, :issue_status, :user, :show_assigners, :show_issue_tags, :version, :comment_journals) + scope = scope.reorder("#{sort_by} #{sort_direction}").distinct + end @queried_issues = scope end