Class: Sbmt::KafkaConsumer::Serialization::JsonDeserializer

Inherits:
BaseDeserializer show all
Defined in:
lib/sbmt/kafka_consumer/serialization/json_deserializer.rb

Instance Attribute Summary

Attributes inherited from BaseDeserializer

#skip_decoding_error

Instance Method Summary collapse

Methods inherited from BaseDeserializer

#initialize

Constructor Details

This class inherits a constructor from Sbmt::KafkaConsumer::Serialization::BaseDeserializer

Instance Method Details

#call(message) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/sbmt/kafka_consumer/serialization/json_deserializer.rb', line 7

def call(message)
  # nil payload can be present for example for tombstone messages
  message.raw_payload.nil? ? nil : ::JSON.parse(message.raw_payload)
rescue JSON::ParserError => e
  raise Sbmt::KafkaConsumer::SkipUndeserializableMessage, "cannot decode message: #{e.message}, payload: #{message.raw_payload}" if skip_decoding_error

  raise
end