Class: Synapse::Auditing::AuditingUnitOfWorkListener

Inherits:
UnitOfWork::UnitOfWorkListener show all
Defined in:
lib/synapse/auditing/unit_listener.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from UnitOfWork::UnitOfWorkListener

#on_cleanup, #on_prepare_commit, #on_prepare_transaction_commit, #on_start

Constructor Details

#initialize(command, data_providers, loggers) ⇒ undefined

Parameters:



14
15
16
17
18
19
# 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

Instance Attribute Details

#recorded_eventsArray<EventMessage> (readonly)

Returns:

  • (Array<EventMessage>)


5
6
7
# File 'lib/synapse/auditing/unit_listener.rb', line 5

def recorded_events
  @recorded_events
end

#return_valueObject

Returns:

  • (Object)


8
9
10
# File 'lib/synapse/auditing/unit_listener.rb', line 8

def return_value
  @return_value
end

Instance Method Details

#after_commit(unit) ⇒ undefined

Parameters:

Returns:

  • (undefined)


38
39
40
41
42
# 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) ⇒ EventMessage

Parameters:

Returns:

  • (EventMessage)


24
25
26
27
28
29
30
31
32
33
34
# 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. audit_data
  @recorded_events.push event

  event
end

#on_rollback(unit, cause = nil) ⇒ undefined

Parameters:

  • unit (UnitOfWork)
  • cause (Error) (defaults to: nil)

Returns:

  • (undefined)


47
48
49
50
51
# 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