Sha256: dd68c23d4a2fdba748709b557b56f44ef8ce05e655666d2ebeaf122638be1df8
Contents?: true
Size: 834 Bytes
Versions: 12
Compression:
Stored size: 834 Bytes
Contents
module CanvasSync module Jobs class SyncAdminsJob < CanvasSync::Job # Syncs Admins using the Canvas API # # # @param job_chain [Hash] # @param options [Hash] def perform(job_chain, _options) updated_admin_ids = [] api_client = CanvasSync.get_canvas_sync_client(job_chain[:global_options]) CanvasSync.sync_scope(Account).find_each do |acc| api_client.account_admins(acc.canvas_id).all_pages_each do |admin_params| admin_params[:account_id] = acc.canvas_id admin = update_or_create_model(Admin, admin_params) updated_admin_ids.push(admin.id) end end Admin.where.not(id: updated_admin_ids).update_all(workflow_state: 'inactive') CanvasSync.invoke_next(job_chain) end end end end
Version data entries
12 entries across 12 versions & 1 rubygems