
- Re-factor - Remove code for notifications - Remove addons - Remove travis-core gem. - Ignore logs directory only - Move core tests to spec/lib
55 lines
1.3 KiB
Ruby
55 lines
1.3 KiB
Ruby
require 'core_ext/active_record/none_scope'
|
|
require 'travis/services/base'
|
|
|
|
# v2 builds.all
|
|
# build => commit, request, matrix.id
|
|
|
|
module Travis
|
|
module Services
|
|
class FindBuilds < Base
|
|
register :find_builds
|
|
|
|
def run
|
|
preload(result)
|
|
end
|
|
|
|
private
|
|
|
|
def result
|
|
@result ||= params[:ids] ? by_ids : by_params
|
|
end
|
|
|
|
def by_ids
|
|
scope(:build).where(:id => params[:ids])
|
|
end
|
|
|
|
def by_params
|
|
if repo
|
|
# TODO :after_number seems like a bizarre api why not just pass an id? pagination style?
|
|
builds = repo.builds
|
|
builds = builds.by_event_type(params[:event_type]) if params[:event_type]
|
|
if params[:number]
|
|
builds.where(:number => params[:number].to_s)
|
|
else
|
|
builds.older_than(params[:after_number])
|
|
end
|
|
elsif params[:running]
|
|
scope(:build).running.limit(25)
|
|
elsif params.nil? || params == {}
|
|
scope(:build).recent
|
|
else
|
|
scope(:build).none
|
|
end
|
|
end
|
|
|
|
def preload(builds)
|
|
builds.includes(:commit)
|
|
end
|
|
|
|
def repo
|
|
@repo ||= run_service(:find_repo, params)
|
|
end
|
|
end
|
|
end
|
|
end
|