Sha256: 2a1080235806eea16d44afbfcdb741f8400b2b37b549a96b8687cbda995fc87f

Contents?: true

Size: 1.08 KB

Versions: 5

Compression:

Stored size: 1.08 KB

Contents

# # <%= autogenerated_migration_warning %>

class ContextModuleItem < ApplicationRecord
  include CanvasSync::Record
  include CanvasSync::Concerns::ApiSyncable
  # include CanvasSync::Concerns::LiveEventSync

  canvas_sync_features :defaults

  belongs_to :context_module, primary_key: :canvas_id, foreign_key: :canvas_context_module_id, optional: true
  belongs_to :content, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_content_id, foreign_type: :canvas_content_type
  belongs_to :assignment, foreign_key: :canvas_assignment_id, primary_key: :canvas_id

  api_syncable({
    canvas_id: :id,
    canvas_context_module_id: :module_id,
    position: :position,
    canvas_content_type: :type,
    canvas_content_id: :content_id,
    canvas_assignment_id: :assignment_id
  }, lambda { |api|
    module_item = api.module_item(context_module.context.canvas_id, context_module.canvas_id, canvas_id)
    module_item['assignment_id'] = api.assignment(context_module.context.canvas_id, module_item['content_id'])['id'] if module_item['type'] == 'Assignment'
    module_item
  })
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
canvas_sync-0.22.9 lib/canvas_sync/generators/templates/models/context_module_item.rb
canvas_sync-0.22.8 lib/canvas_sync/generators/templates/models/context_module_item.rb
canvas_sync-0.22.6 lib/canvas_sync/generators/templates/models/context_module_item.rb
canvas_sync-0.22.5 lib/canvas_sync/generators/templates/models/context_module_item.rb
canvas_sync-0.22.4 lib/canvas_sync/generators/templates/models/context_module_item.rb