14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/synapse/partitioning/packing/json_unpacker.rb', line 14
def unpack_message(message)
packed = JSON.load message
packed.symbolize_keys!
message_type = packed.fetch(:message_type).to_sym
builder = builder_for(message_type).new
builder.id = packed.fetch :id
builder.metadata = deserialize_metadata packed
builder.payload = deserialize_payload packed
if [:event, :domain_event].include? message_type
timestamp = packed.fetch :timestamp
builder.timestamp = Time.at timestamp
end
if :domain_event == message_type
builder.aggregate_id = packed.fetch :aggregate_id
builder.sequence_number = packed.fetch :sequence_number
end
builder.build
end
|