summaryrefslogtreecommitdiff
path: root/app/finders/ci/pipeline_schedules_finder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/finders/ci/pipeline_schedules_finder.rb')
-rw-r--r--app/finders/ci/pipeline_schedules_finder.rb47
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