|
|
|
@@ -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? |
|
|
|
|
|
|
|
|