Class: CanvasSync::Jobs::SyncSimpleTableJob
- Inherits:
-
ReportStarter
- Object
- ActiveJob::Base
- CanvasSync::Job
- ReportStarter
- CanvasSync::Jobs::SyncSimpleTableJob
- Defined in:
- lib/canvas_sync/jobs/sync_simple_table_job.rb
Instance Attribute Summary
Attributes inherited from CanvasSync::Job
Instance Method Summary collapse
- #get_term_id(term) ⇒ Object
-
#perform(job_chain, options) ⇒ Object
Starts a report processor for the specified report (the specified report must be enabled).
- #report_params(options, canvas_term_id = nil) ⇒ Object
- #start_report(params, job_chain, options) ⇒ Object
Methods inherited from CanvasSync::Job
#create_job_log, #report_checker_wait_time, #update_or_create_model
Instance Method Details
#get_term_id(term) ⇒ Object
51 52 53 |
# File 'lib/canvas_sync/jobs/sync_simple_table_job.rb', line 51 def get_term_id(term) term.try(:canvas_id) || term.canvas_term_id end |
#perform(job_chain, options) ⇒ Object
Starts a report processor for the specified report (the specified report must be enabled)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/canvas_sync/jobs/sync_simple_table_job.rb', line 10 def perform(job_chain, ) if [:term_scope] sub_reports = CanvasSync.fork(@job_log, job_chain, keys: [:canvas_term_id]) do |fork_template| Term.send([:term_scope]).find_each.map do |term| fork = fork_template.duplicate # Deep copy the job_chain so each report gets the correct term id passed into # its options with no side effects term_id = get_term_id(term) fork[:global_options][:canvas_term_id] = term_id { job_chain: fork.serialize, params: report_params(, term_id), options: , } end end sub_reports.each do |r| start_report(r[:params], r[:job_chain], r[:options]) end else start_report(report_params(), job_chain, ) end end |
#report_params(options, canvas_term_id = nil) ⇒ Object
45 46 47 48 49 |
# File 'lib/canvas_sync/jobs/sync_simple_table_job.rb', line 45 def report_params(, canvas_term_id=nil) params = [:params] || {} params["parameters[enrollment_term_id]"] = canvas_term_id if canvas_term_id params end |
#start_report(params, job_chain, options) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/canvas_sync/jobs/sync_simple_table_job.rb', line 35 def start_report(params, job_chain, ) CanvasSync::Jobs::ReportStarter.perform_later( job_chain, [:report_name], params, CanvasSync::Processors::NormalProcessor.to_s, , ) end |