Class: CanvasSync::Jobs::SyncTermsJob

Inherits:
CanvasSync::Job show all
Defined in:
lib/canvas_sync/jobs/sync_terms_job.rb

Instance Attribute Summary

Attributes inherited from CanvasSync::Job

#job_log

Instance Method Summary collapse

Methods inherited from CanvasSync::Job

#create_job_log, #report_checker_wait_time, #update_or_create_model

Instance Method Details

#perform(options) ⇒ Object

Syncs Terms using the Canvas API

Terms are pre-synced so that provisioning reports can be scoped to term.

Parameters:

  • options (Hash)

    If options contains a :term_scope a seperate provisioning report will be started for each term in that scope. :models should be an array of models to sync.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/canvas_sync/jobs/sync_terms_job.rb', line 11

def perform(options)
  CanvasSync.get_canvas_sync_client(batch_context).terms("self", workflow_state: ['all']).all_pages!.each do |term_params|
    if  = batch_context[:account_id]
      # These branches are primarily to support Legacy apps
      if Term.respond_to?(:create_or_update) && Term.method(:create_or_update).arity.abs == 2
        Term.create_or_update(term_params, )
      else
        term_params[:account_id] |= 
        update_or_create_model(Term, term_params)
      end
    else
      update_or_create_model(Term, term_params)
    end
  end

  TermBatchesJob.perform_now(options)
end