Class: Debci::SelfService

Inherits:
App
  • Object
show all
Includes:
HTMLHelpers, TestHandler
Defined in:
lib/debci/self_service.rb

Defined Under Namespace

Classes: InvalidRequest

Constant Summary

Constants included from HTMLHelpers

HTMLHelpers::ICONS

Instance Method Summary collapse

Methods included from HTMLHelpers

#expand_pin_packages, #expand_url, #filesize, #history_url, #icon, #title_test_trigger_pin

Methods included from TestHandler

#enqueue, #request_batch_tests, #request_tests, #valid_package_name?, #validate_batch_test, #validate_priority, #validate_tests

Methods inherited from App

#get_page_params, get_page_range, #get_page_range

Instance Method Details

#authenticate!Object



51
52
53
54
55
56
# File 'lib/debci/self_service.rb', line 51

def authenticate!
  return unless session[:user].nil?

  redirect('/user/login')
  halt
end

#get_job_to_retry(run_id) ⇒ Object



257
258
259
260
261
262
263
264
265
# File 'lib/debci/self_service.rb', line 257

def get_job_to_retry(run_id)
  begin
    job = Debci::Job.find(run_id)
  rescue ActiveRecord::RecordNotFound
    halt(400, "Job ID not known: #{run_id}")
  end
  halt(403, "Package #{job.package.name} is in the REJECT list and cannot be retried") if Debci.reject_list.include?(job.package, suite: job.suite, arch: job.arch)
  job
end

#get_same_pending_jobs(job) ⇒ Object



267
268
269
270
271
272
273
274
275
# File 'lib/debci/self_service.rb', line 267

def get_same_pending_jobs(job)
  Debci::Job.pending.where(
    package_id: job.package_id,
    suite: job.suite,
    arch: job.arch,
    requestor: job.requestor,
    trigger: job.trigger,
  ).select { |j| Set.new(j.pin_packages) == Set.new(job.pin_packages) }
end

#login_callback(uid, username) ⇒ Object



277
278
279
280
281
282
283
284
# File 'lib/debci/self_service.rb', line 277

def (uid, username)
  user = Debci::User.find_or_create_by!(uid: uid) do |c|
    c.username = username
  end
  user.update(username: username) if user.username != username
  session[:user] = user
  redirect("/user/#{user.username}")
end

#validate_form_submission(package, suite, archs) ⇒ Object

Raises:



187
188
189
190
191
# File 'lib/debci/self_service.rb', line 187

def validate_form_submission(package, suite, archs)
  raise InvalidRequest.new('Please enter a valid package name') unless valid_package_name?(package)
  raise InvalidRequest.new('Please select a suite') if suite == ''
  raise InvalidRequest.new('Please select an architecture') if archs.empty?
end