Sha256: 8ad2840a3b891aee9dc0509163cb36071b6fe8d53608ed4af2d3b996f3e221c2

Contents?: true

Size: 922 Bytes

Versions: 2

Compression:

Stored size: 922 Bytes

Contents

# #
# AUTO GENERATED LIVE EVENT
# This was auto generated by the CanvasSync Gem.
# You can customize it as needed, but make sure you test
# any changes you make to the auto generated methods.
#


module LiveEvents
  class UserEvent < LiveEvents::BaseEvent
  # The following is provided in the live events call:
  # {
  #   user_id: user.global_id,
  #   uuid: user.uuid,
  #   name: user.name,
  #   short_name: user.short_name,
  #   workflow_state: user.workflow_state,
  #   created_at: user.created_at,
  #   updated_at: user.updated_at
  # }

  def perform(event_payload)
    super
    attrs = {
      canvas_user_id: local_canvas_id(payload[:user_id]),
      status: payload[:workflow_state],
    }
    create_or_update(attrs)
  end

  private

  def create_or_update(attrs)
    user = User.where(canvas_user_id: attrs[:canvas_user_id]).first_or_initialize
    user.assign_attributes(attrs)
    user.save!
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
canvas_sync-0.4.1 spec/dummy/app/services/live_events/user_event.rb
canvas_sync-0.4.0 spec/dummy/app/services/live_events/user_event.rb