Sha256: 39d9d52703e4b4b530d00b2f939821e62c14e8ea4a577a5861c11b42c3417dad
Contents?: true
Size: 686 Bytes
Versions: 126
Compression:
Stored size: 686 Bytes
Contents
module CanvasSync module Jobs class SyncRolesJob < CanvasSync::Job # Syncs Roles using the Canvas API # # @param 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 end end end
Version data entries
126 entries across 126 versions & 1 rubygems