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

Version Path
canvas_sync-0.22.9 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.8 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.6 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.5 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.4 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.3 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.2 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.1 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta8 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta7 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta6 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta5 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta4 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta3 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta2 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.22.0.beta1 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.21.1 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.21.1.beta1 lib/canvas_sync/jobs/sync_roles_job.rb
canvas_sync-0.21.0 lib/canvas_sync/jobs/sync_roles_job.rb