Module: RKS::Event::Handler

Includes:
Support::Routable
Defined in:
lib/rks/event/handler.rb

Class Method Summary collapse

Methods included from Support::Concern

#included

Class Method Details

.call(correlation_id:, event:, payload:) ⇒ Object



7
8
9
10
11
# File 'lib/rks/event/handler.rb', line 7

def call(correlation_id:, event:, payload:)
  route = router.find(event)
  decoded_payload = decode(payload: payload, options: route[:options])
  route[:block].call(correlation_id, decoded_payload)
end

.decode(payload:, options: {}) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/rks/event/handler.rb', line 13

def decode(payload:, options: {})
  if options[:type] == "AVRO"
    Application.avro_registry.decode(payload, schema_name: options[:avro][:schema_name], namespace: options[:avro][:namespace])
  else
    JSON.parse(payload)
  end
end