class PhobosDBCheckpoint::Failure

Public Class Methods

exists?(checksum) click to toggle source
# File lib/phobos_db_checkpoint/failure.rb, line 30
def self.exists?(checksum)
  where(checksum: checksum).exists?
end
record(event:, event_metadata:, exception: nil) click to toggle source
# File lib/phobos_db_checkpoint/failure.rb, line 11
def self.record(event:, event_metadata:, exception: nil)
  return if exists?(event_metadata[:checksum])

  create do |record|
    record.topic           = event_metadata[:topic]
    record.group_id        = event_metadata[:group_id]
    record.entity_id       = event.fetch_entity_id
    record.event_time      = event.fetch_event_time
    record.event_type      = event.fetch_event_type
    record.event_version   = event.fetch_event_version
    record.checksum        = event_metadata[:checksum]
    record.payload         = event.payload
    record.metadata        = event_metadata
    record.error_class     = exception&.class&.name
    record.error_message   = exception&.message
    record.error_backtrace = exception&.backtrace
  end
end

Public Instance Methods

group_id() click to toggle source
# File lib/phobos_db_checkpoint/failure.rb, line 42
def group_id
  attributes['group_id'] || metadata[:group_id]
end
metadata() click to toggle source
# File lib/phobos_db_checkpoint/failure.rb, line 38
def metadata
  attributes['metadata'].deep_symbolize_keys
end
payload() click to toggle source
# File lib/phobos_db_checkpoint/failure.rb, line 34
def payload
  attributes['payload'].deep_symbolize_keys
end