154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
# File 'lib/entity_projection/entity_projection.rb', line 154
def apply_event_data(event_data)
logger.trace(tag: :apply) { "Applying event data (Type: #{event_data.type})" }
logger.trace(tags: [:data, :message_data]) { event_data.pretty_inspect }
res = nil
handler = self.class.handler(event_data)
unless handler.nil?
event_name = Messaging::Message::Info.canonize_name(event_data.type)
event_class = self.class.event_registry.get(event_name)
res = Messaging::Message::Import.(event_data, event_class)
public_send(handler, res)
else
if respond_to?(:apply)
res = apply(event_data)
end
end
logger.info(tag: :apply) { "Applied event data (Type: #{event_data.type})" }
logger.info(tags: [:data, :message_data]) { event_data.pretty_inspect }
res
end
|