in app/finders/deployments_finder.rb [54:84]
def validate!
if filter_by_updated_at? && filter_by_finished_at?
raise InefficientQueryError, 'Both `updated_at` filter and `finished_at` filter can not be specified'
end
if filter_by_updated_at? && !order_by_updated_at?
raise InefficientQueryError, '`updated_at` filter requires `updated_at` sort'
end
if filter_by_finished_at? && !order_by_finished_at?
raise InefficientQueryError, '`finished_at` filter requires `finished_at` sort.'
end
if order_by_finished_at? && !(filter_by_finished_at? || filter_by_finished_statuses?)
raise InefficientQueryError,
'`finished_at` sort requires `finished_at` filter or a filter with at least one of the finished statuses.'
end
if filter_by_finished_at? && !filter_by_successful_deployment?
raise InefficientQueryError, '`finished_at` filter must be combined with `success` status filter.'
end
if filter_by_environment_name? && !params[:project].present?
raise InefficientQueryError, '`environment` name filter must be combined with `project` scope.'
end
if filter_by_finished_statuses? && filter_by_upcoming_statuses?
raise InefficientQueryError, 'finished statuses and upcoming statuses must be separately queried.'
end
end