@@ -52,12 +52,12 @@ We decided to create a custom `Transformations::RefundToReturnEventMapper`and in
5252 mapper = RubyEventStore ::Mappers ::PipelineMapper .new (
5353 RubyEventStore ::Mappers ::Pipeline .new (
5454 Transformations ::RefundToReturnEventMapper .new (
55- ' Ordering::DraftRefundCreated' => ' Ordering::DraftReturnCreated' ,
56- ' Ordering::ItemAddedToRefund' => ' Ordering::ItemAddedToReturn' ,
57- ' Ordering::ItemRemovedFromRefund' => ' Ordering::ItemRemovedFromReturn'
58- ),
55+ ' Ordering::DraftRefundCreated' => ' Ordering::DraftReturnCreated' ,
56+ ' Ordering::ItemAddedToRefund' => ' Ordering::ItemAddedToReturn' ,
57+ ' Ordering::ItemRemovedFromRefund' => ' Ordering::ItemRemovedFromReturn'
58+ ),
5959 RubyEventStore ::Mappers ::Transformation ::SymbolizeMetadataKeys .new ,
60- RubyEventStore ::Mappers ::Transformation ::PreserveTypes .new
60+ to_domain_event: RubyEventStore ::Mappers ::Transformation ::DomainEvent .new
6161 )
6262 )
6363 client = RailsEventStore ::JSONClient .new (mapper: mapper)
@@ -90,20 +90,14 @@ module Transformations
9090
9191 if old_class_name != new_class_name
9292 transformed_data = transform_payload(record.data, old_class_name)
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
93+ RubyEventStore ::Record .new (
94+ event_id: record.event_id,
95+ event_type: new_class_name,
96+ data: transformed_data,
97+ metadata: record.metadata,
98+ timestamp: record.timestamp,
99+ valid_at: record.valid_at
100+ )
107101 else
108102 record
109103 end
@@ -128,10 +122,10 @@ module Transformations
128122 def transform_payload (data , old_class_name )
129123 case old_class_name
130124 when ' Ordering::DraftRefundCreated'
131- data = transform_key (data, : refund_id, : return_id )
132- transform_key (data, : refundable_products, : returnable_products )
125+ data = transform_refund_to_return_payload (data, " refund_id" , " return_id" )
126+ transform_refund_to_return_payload (data, " refundable_products" , " returnable_products" )
133127 when ' Ordering::ItemAddedToRefund' , ' Ordering::ItemRemovedFromRefund'
134- transform_key (data, : refund_id, : return_id )
128+ transform_refund_to_return_payload (data, " refund_id" , " return_id" )
135129 else
136130 data
137131 end
@@ -177,7 +171,8 @@ While `Transformation::Upcast` is pipeline-compatible and would work with our tr
177171 RubyEventStore ::Mappers ::Pipeline .new (
178172 RubyEventStore ::Mappers ::Transformation ::Upcast .new (upcast_map),
179173 RubyEventStore ::Mappers ::Transformation ::SymbolizeMetadataKeys .new ,
180- RubyEventStore ::Mappers ::Transformation ::PreserveTypes .new
174+ RubyEventStore ::Mappers ::Transformation ::PreserveTypes .new ,
175+ to_domain_event: RubyEventStore ::Mappers ::Transformation ::DomainEvent .new
181176 )
182177)
183178
0 commit comments