@@ -56,7 +56,6 @@ We decided to create a custom `Transformations::RefundToReturnEventMapper`and in
5656 ' Ordering::ItemAddedToRefund' => ' Ordering::ItemAddedToReturn' ,
5757 ' Ordering::ItemRemovedFromRefund' => ' Ordering::ItemRemovedFromReturn'
5858 ),
59- RubyEventStore ::Mappers ::Transformation ::DomainEvent .new ,
6059 RubyEventStore ::Mappers ::Transformation ::SymbolizeMetadataKeys .new ,
6160 RubyEventStore ::Mappers ::Transformation ::PreserveTypes .new
6261 )
@@ -91,14 +90,20 @@ module Transformations
9190
9291 if old_class_name != new_class_name
9392 transformed_data = transform_payload(record.data, old_class_name)
94- record.class .new(
95- event_id: record.event_id,
96- event_type: new_class_name,
97- data: transformed_data,
98- metadata: record.metadata,
99- timestamp: record.timestamp || Time .now.utc,
100- valid_at: record.valid_at || Time .now.utc
101- )
93+ begin
94+ metadata_json = record.metadata.respond_to?(:to_json ) ? record.metadata.to_json : record.metadata.to_h.to_json
95+ RubyEventStore ::SerializedRecord .new (
96+ event_id: record.event_id,
97+ event_type: new_class_name,
98+ data: transformed_data.to_json,
99+ metadata: metadata_json,
100+ timestamp: record.timestamp,
101+ valid_at: record.valid_at
102+ )
103+ rescue => e
104+ puts " Mapper error: #{ e.message } , falling back to original record"
105+ record
106+ end
102107 else
103108 record
104109 end
@@ -171,7 +176,6 @@ While `Transformation::Upcast` is pipeline-compatible and would work with our tr
171176 RubyEventStore ::Mappers ::PipelineMapper .new (
172177 RubyEventStore ::Mappers ::Pipeline .new (
173178 RubyEventStore ::Mappers ::Transformation ::Upcast .new (upcast_map),
174- RubyEventStore ::Mappers ::Transformation ::DomainEvent .new ,
175179 RubyEventStore ::Mappers ::Transformation ::SymbolizeMetadataKeys .new ,
176180 RubyEventStore ::Mappers ::Transformation ::PreserveTypes .new
177181 )
0 commit comments