<%= autogenerated_event_warning %> class LiveEvents::SyllabusEvent < LiveEvents::BaseEvent # The following is provided in the live events call: # { # course_id: course.global_id, # syllabus_body: LiveEvents.truncate(course.syllabus_body), # old_syllabus_body: LiveEvents.truncate(old_syllabus_body) # } # def perform(event_payload) super attrs = { course_id: course.try(:id), syllabus_body: payload[:syllabus_body] } create_or_update(attrs) rescue => e log_error e ensure true end private def create_or_update(attrs) syllabus = Syllabus.where(course_id: attrs[:course_id]).first_or_initialize syllabus.body = attrs[:syllabus_body] # Syllabus Body can get truncated by live events syllabus.save! end def course Course.find_by(canvas_course_id: local_canvas_id(payload[:course_id])) end end