class Synapse::Auditing::AuditingUnitOfWorkListener

Attributes

recorded_events[R]

@return [Array<EventMessage>]

return_value[RW]

@return [Object]

Public Class Methods

new(command, data_providers, loggers) click to toggle source

@param [CommandMessage] command @param [Array<AuditDataProvider>] data_providers @param [Array<AuditLogger>] loggers @return [undefined]

# File lib/synapse/auditing/unit_listener.rb, line 14
def initialize(command, data_providers, loggers)
  @command = command
  @data_providers = data_providers
  @loggers = loggers
  @recorded_events = Array.new
end

Public Instance Methods

after_commit(unit) click to toggle source

@param [UnitOfWork] unit @return [undefined]

# File lib/synapse/auditing/unit_listener.rb, line 38
def after_commit(unit)
  @loggers.each do |logger|
    logger.on_success @command, @return_value, @recorded_events
  end
end
on_event_registered(unit, event) click to toggle source

@param [UnitOfWork] unit @param [EventMessage] event @return [EventMessage]

# File lib/synapse/auditing/unit_listener.rb, line 24
def on_event_registered(unit, event)
  audit_data = Hash.new
  @data_providers.each do |provider|
    audit_data.merge! provider.provide_data_for @command
  end

  event = event.and_metadata audit_data
  @recorded_events.push event

  event
end
on_rollback(unit, cause = nil) click to toggle source

@param [UnitOfWork] unit @param [Error] cause @return [undefined]

# File lib/synapse/auditing/unit_listener.rb, line 47
def on_rollback(unit, cause = nil)
  @loggers.each do |logger|
    logger.on_failure @command, cause, @recorded_events
  end
end