travis-api/lib/travis/services/find_jobs.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

44 lines
1.1 KiB
Ruby

require 'travis/services/base'
module Travis
module Services
class FindJobs < Base
register :find_jobs
def run
preload(result)
end
private
def result
@result ||= params[:ids] ? by_ids : by_params
end
def by_ids
scope(:job).where(:id => params[:ids])
end
def by_params
jobs = scope(:job)
if params[:state]
jobs = jobs.where(state: params[:state])
else
jobs = jobs.where(state: [:created, :queued, :received, :started])
# we don't use it anymore, but just for backwards compat
jobs = jobs.where(queue: params[:queue]) if params[:queue]
jobs
end
jobs.limit(250)
end
def preload(jobs)
jobs = jobs.includes(:commit)
ActiveRecord::Associations::Preloader.new(jobs, :log, :select => [:id, :job_id]).run
ActiveRecord::Associations::Preloader.new(jobs, :repository, :select => [:id, :owner_name, :name]).run
jobs
end
end
end
end