47 lines
883 B
Ruby
47 lines
883 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Ci
|
|
class PipelineSchedulesFinder
|
|
attr_reader :project, :pipeline_schedules
|
|
|
|
def initialize(project)
|
|
@project = project
|
|
@pipeline_schedules = project.pipeline_schedules
|
|
end
|
|
|
|
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
|
|
end
|
|
end
|