class CanvasSync::Jobs::SyncRolesJob
def perform(options)
-
options(Hash) --
def perform(options) updated_role_ids = [] api_client = CanvasSync.get_canvas_sync_client(batch_context) CanvasSync.sync_scope(Account).find_each do |acc| api_client.list_roles(acc.canvas_id, state: %w[active inactive]).all_pages_each do |role_params| role = update_or_create_model(Role, role_params) updated_role_ids.push(role.id) end end Role.where.not(id: updated_role_ids).update_all(workflow_state: 'inactive') end