Skip to content

Instantly share code, notes, and snippets.

@benilovj
Created June 17, 2019 21:33
Show Gist options
  • Save benilovj/c2a64225b1ccb89889c213ed8da9a895 to your computer and use it in GitHub Desktop.
Save benilovj/c2a64225b1ccb89889c213ed8da9a895 to your computer and use it in GitHub Desktop.
DFE-Digital/manage-courses-backend/lib/mcb/commands/sites/
name 'assign_to_courses'
summary 'Assign a new site to multiple courses in db'
usage 'assign_to_courses <provider_code> <site_code<'
param :provider_code, transform: ->(code) { code.upcase }
param :site_code, transform: ->(code) { code.upcase }
run do |opts, args, _cmd|
MCB.init_rails(opts)
provider = Provider.find_by!(provider_code: args[:provider_code])
site = provider.sites.find_by!(code: args[:site_code])
cli = HighLine.new
course_codes_string = cli.ask("Which courses do you wish to add #{site.location_name} to? (Enter comma-separated course codes)")
course_codes = course_codes_string.split(",").map(&:strip)
courses = provider.courses.where(course_code: course_codes)
courses.each do |course|
puts "Adding #{site.location_name} to course #{course.course_code}"
course.sites << site
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment