diff options
Diffstat (limited to 'app/finders/ci/pipeline_schedules_finder.rb')
-rw-r--r-- | app/finders/ci/pipeline_schedules_finder.rb | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/app/finders/ci/pipeline_schedules_finder.rb b/app/finders/ci/pipeline_schedules_finder.rb index 2544c8c3254..e5ee65a02c8 100644 --- a/app/finders/ci/pipeline_schedules_finder.rb +++ b/app/finders/ci/pipeline_schedules_finder.rb @@ -9,20 +9,39 @@ module Ci @pipeline_schedules = project.pipeline_schedules end - # rubocop: disable CodeReuse/ActiveRecord - def execute(scope: nil) - scoped_schedules = - case scope - when 'active' - pipeline_schedules.active - when 'inactive' - pipeline_schedules.inactive - else - pipeline_schedules - end - - scoped_schedules.order(id: :desc) + def execute(scope: nil, ids: nil) + items = pipeline_schedules + items = by_ids(items, ids) + items = by_scope(items, scope) + + sort_items(items) + end + + private + + def by_ids(items, ids) + if ids.present? + items.id_in(ids) + else + items + end + end + + def by_scope(items, scope) + case scope + when 'active' + items.active + when 'inactive' + items.inactive + else + items + end + end + + # rubocop:disable CodeReuse/ActiveRecord + def sort_items(items) + items.order(id: :desc) end - # rubocop: enable CodeReuse/ActiveRecord + # rubocop:enable CodeReuse/ActiveRecord end end |