diff --git a/app/controllers/api/v1/issues_controller.rb b/app/controllers/api/v1/issues_controller.rb index 6f615e49..43343204 100644 --- a/app/controllers/api/v1/issues_controller.rb +++ b/app/controllers/api/v1/issues_controller.rb @@ -91,6 +91,7 @@ class Api::V1::IssuesController < Api::V1::BaseController :keyword, :author_id, :milestone_id, :assigner_id, :status_id, + :begin_date, :end_date, :sort_by, :sort_direction, :issue_tag_ids) end diff --git a/app/services/api/v1/issues/list_service.rb b/app/services/api/v1/issues/list_service.rb index fa27f4ee..0aeca052 100644 --- a/app/services/api/v1/issues/list_service.rb +++ b/app/services/api/v1/issues/list_service.rb @@ -2,6 +2,7 @@ class Api::V1::Issues::ListService < ApplicationService include ActiveModel::Model attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids + attr_reader :begin_date, :end_date 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 @@ -21,6 +22,8 @@ class Api::V1::Issues::ListService < ApplicationService @milestone_id = params[:milestone_id] @assigner_id = params[:assigner_id] @status_id = params[:status_id] + @begin_date = params[:begin_date] + @end_date = params[:end_date] @sort_by = params[:sort_by].present? ? params[:sort_by] : 'issues.updated_on' @sort_direction = (params[:sort_direction].present? ? params[:sort_direction] : 'desc').downcase @current_user = current_user @@ -67,6 +70,10 @@ class Api::V1::Issues::ListService < ApplicationService # status_id issues = issues.where(status_id: status_id) if status_id.present? + if begin_date&.present? || end_date&.present? + issues = issues.where("issues.created_on between ? and ?",begin_date&.present? ? begin_date.to_date : Time.now.to_date, end_date&.present? ? end_date.to_date : Time.now.to_date) + end + # keyword issues = issues.ransack(subject_or_description_cont: keyword).result if keyword.present?