Class: LiveEvents::SubmissionEvent

Inherits:
BaseEvent show all
Defined in:
lib/canvas_sync/generators/templates/services/live_events/submission/submission_event.rb

Instance Attribute Summary

Attributes inherited from BaseEvent

#payload

Instance Method Summary collapse

Methods inherited from BaseEvent

#local_canvas_id

Methods inherited from CanvasSync::Job

#create_job_log, #report_checker_wait_time

Instance Method Details

#perform(event_payload) ⇒ Object

The following is provided in the live events call:

submission_id: submission.global_id,
assignment_id: submission.global_assignment_id,
user_id: submission.global_user_id,
submitted_at: submission.submitted_at,
graded_at: submission.graded_at,
updated_at: submission.updated_at,
score: submission.score,
grade: submission.grade,
submission_type: submission.submission_type,
body: LiveEvents.truncate(submission.body),
url: submission.url,
attempt: submission.attempt



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/canvas_sync/generators/templates/services/live_events/submission/submission_event.rb', line 21

def perform(event_payload)
  super
  return if assignment.nil? || user.nil?
  attrs = {
    canvas_submission_id: local_canvas_id(payload[:submission_id]),
    canvas_assignment_id: assignment.try(:id),
    canvas_user_id: user.try(:id),
    submitted_at: payload[:submitted_at],
    graded_at: payload[:graded_at],
    score: payload[:score],
  }
  create_or_update(attrs)
end