diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index 9b22068be..1f9270fe4 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -159,6 +159,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController :milestone_id, :assigner_id, :status_id, :priority_id, :begin_date, :end_date, + :update_begin_date, :update_end_date, :sort_by, :sort_direction, :root_id, :issue_tag_ids, :pm_project_id, :pm_sprint_id, :pm_issue_type, :pm_project_ids, :status_ids, :ids, :exclude_ids, :pm_issue_types diff --git a/app/services/api/v1/issues/list_service.rb b/app/services/api/v1/issues/list_service.rb index 2ceb5bae3..6432317ad 100644 --- a/app/services/api/v1/issues/list_service.rb +++ b/app/services/api/v1/issues/list_service.rb @@ -2,7 +2,7 @@ class Api::V1::Issues::ListService < ApplicationService include ActiveModel::Model attr_reader :project, :only_name, :category, :participant_category, :keyword, :author_id, :issue_tag_ids - attr_reader :begin_date, :end_date + attr_reader :begin_date, :end_date, :update_begin_date, :update_end_date attr_reader :milestone_id, :assigner_id, :status_id, :priority_id, :sort_by, :sort_direction, :current_user attr_reader :pm_project_id, :pm_project_ids, :pm_sprint_id, :root_id, :pm_issue_type, :status_ids, :ids, :exclude_ids, :pm_issue_types attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count, :complete_issues_count @@ -27,6 +27,8 @@ class Api::V1::Issues::ListService < ApplicationService @status_id = params[:status_id] @begin_date = params[:begin_date] @end_date = params[:end_date] + @update_begin_date = params[:update_begin_date] + @update_end_date = params[:update_end_date] @sort_by = params[:sort_by].present? ? params[:sort_by] : 'issues.updated_on' @pm_project_id = params[:pm_project_id] @pm_project_ids = params[:pm_project_ids] @@ -144,6 +146,10 @@ class Api::V1::Issues::ListService < ApplicationService issues = issues.where('issues.created_on between ? and ?', begin_date&.present? ? begin_date.to_time : Time.now.beginning_of_day, end_date&.present? ? end_date.to_time.end_of_day : Time.now.end_of_day) end + if update_begin_date&.present? || update_end_date&.present? + issues = issues.where('issues.updated_on between ? and ?', update_begin_date&.present? ? update_begin_date.to_time : Time.now.beginning_of_day, update_end_date&.present? ? update_end_date.to_time.end_of_day : Time.now.end_of_day) + end + # keyword issues = issues.ransack(id_or_project_issues_index_eq: keyword).result.or(issues.ransack(subject_or_description_cont: keyword).result) if keyword.present?