forgeplus/app/queries/ci/builds/list_query.rb

33 lines
753 B
Ruby

class Ci::Builds::ListQuery < ApplicationQuery
include CustomSortable
attr_reader :params
sort_columns :build_created, default_by: :build_created, default_direction: :desc
def initialize(repo, params)
@repo = repo
@params = params
end
def call
scope = @repo.builds
builds =
case params[:search]
when 'success' then scope.successed
when 'pending' then scope.pending
when 'error' then scope.errored
when 'running' then scope.running
when 'failure' then scope.failed
when 'killed' then scope.killed
else
scope
end
builds = builds.by_branch(params[:branch]) if params[:branch]
custom_sort(builds, params[:sort_by], params[:sort_direction])
end
end