Class: Yes::Core::ReadModel::EventHandler

Inherits:
Object
  • Object
show all
Includes:
OpenTelemetry::Trackable
Defined in:
lib/yes/core/read_model/event_handler.rb

Overview

Base class for event handlers that process events and update read models.

Instance Method Summary collapse

Constructor Details

#initialize(read_model, payload_store_lookup: Yes::Core::PayloadStore::Lookup.new) ⇒ EventHandler

Returns a new instance of EventHandler.

Parameters:

  • read_model (ActiveRecord::Base)

    AR object

  • payload_store_lookup (#call) (defaults to: Yes::Core::PayloadStore::Lookup.new)

    payload store lookup instance

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
23
# File 'lib/yes/core/read_model/event_handler.rb', line 15

def initialize(
  read_model,
  payload_store_lookup: Yes::Core::PayloadStore::Lookup.new
)
  raise ArgumentError unless read_model

  self.read_model = read_model
  self.payload_store_lookup = payload_store_lookup
end

Instance Method Details

#call(event) ⇒ Yes::Core::Event

Returns the processed event.

Parameters:

Returns:



27
28
29
30
31
32
33
34
35
# File 'lib/yes/core/read_model/event_handler.rb', line 27

def call(event)
  otl_record_event_data(event) if self.class.otl_tracer

  payload_store_lookup.call(event).each do |key, value|
    event.data[key.to_s] = value
  end

  event
end