Skip to content

Commit b52c6c0

Browse files
committed
Debug transformations.
1 parent 0cff44d commit b52c6c0

File tree

3 files changed

+45
-17
lines changed

3 files changed

+45
-17
lines changed

.github/workflows/rails_application.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ jobs:
184184
working-directory: ${{ env.WORKING_DIRECTORY }}
185185
env:
186186
NUM_GROUPS_FROM_CI: ${{ needs.determine_run_parameters.outputs.num_groups }}
187+
DEBUG_TRANSFORMATIONS: true
187188
run: |
188189
echo "Waiting for PostgreSQL to be ready..."
189190
until pg_isready -h localhost -p 5432 -U "postgres" -d "cqrs-es-sample-with-res_test"; do
@@ -193,7 +194,7 @@ jobs:
193194
194195
RAILS_ENV=test bundle exec rails db:prepare
195196
196-
SUBJECT_LIST_OUTPUT=$(RAILS_ENV=test bundle exec mutant environment subject list)
197+
SUBJECT_LIST_OUTPUT=$(RAILS_ENV=test DEBUG_TRANSFORMATIONS=true bundle exec mutant environment subject list)
197198
mapfile -t subjects_array < <( \
198199
echo "$SUBJECT_LIST_OUTPUT" | \
199200
awk 'NR == 1 {next} /Run options:/ {exit} {print}' | \

infra/lib/infra/event_store.rb

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
module Infra
22
class EventStore < SimpleDelegator
33
def self.main
4-
require_relative "../../../rails_application/lib/transformations/refund_to_return_event_mapper" rescue nil
4+
if ENV['DISABLE_EVENT_TRANSFORMATIONS'] == 'true'
5+
mapper = default_mapper
6+
else
7+
require_relative "../../../rails_application/lib/transformations/refund_to_return_event_mapper" rescue nil
58

6-
if defined?(Transformations::RefundToReturnEventMapper)
7-
mapper = RubyEventStore::Mappers::PipelineMapper.new(
8-
RubyEventStore::Mappers::Pipeline.new(
9-
Transformations::RefundToReturnEventMapper.new(
10-
'Ordering::DraftRefundCreated' => 'Ordering::DraftReturnCreated',
11-
'Ordering::ItemAddedToRefund' => 'Ordering::ItemAddedToReturn',
12-
'Ordering::ItemRemovedFromRefund' => 'Ordering::ItemRemovedFromReturn'
13-
),
14-
RubyEventStore::Mappers::Transformation::DomainEvent.new,
15-
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
16-
RubyEventStore::Mappers::Transformation::PreserveTypes.new
9+
if defined?(Transformations::RefundToReturnEventMapper)
10+
mapper = RubyEventStore::Mappers::PipelineMapper.new(
11+
RubyEventStore::Mappers::Pipeline.new(
12+
Transformations::RefundToReturnEventMapper.new(
13+
'Ordering::DraftRefundCreated' => 'Ordering::DraftReturnCreated',
14+
'Ordering::ItemAddedToRefund' => 'Ordering::ItemAddedToReturn',
15+
'Ordering::ItemRemovedFromRefund' => 'Ordering::ItemRemovedFromReturn'
16+
),
17+
RubyEventStore::Mappers::Transformation::DomainEvent.new,
18+
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
19+
RubyEventStore::Mappers::Transformation::PreserveTypes.new
20+
)
1721
)
18-
)
19-
else
20-
mapper = default_mapper
22+
else
23+
mapper = default_mapper
24+
end
2125
end
2226

2327
new(RailsEventStore::JSONClient.new(mapper: mapper))

rails_application/lib/transformations/refund_to_return_event_mapper.rb

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,46 @@ def initialize(class_map)
55
end
66

77
def dump(record)
8+
if ENV['DEBUG_TRANSFORMATIONS'] == 'true'
9+
puts "[TRANSFORM] dump() called with event_type: #{record.event_type}"
10+
puts "[TRANSFORM] record class: #{record.class.name}"
11+
puts "[TRANSFORM] record timestamp: #{record.timestamp.inspect}"
12+
puts "[TRANSFORM] record valid_at: #{record.valid_at.inspect}"
13+
end
814
record
915
end
1016

1117
def load(record)
18+
if ENV['DEBUG_TRANSFORMATIONS'] == 'true'
19+
puts "[TRANSFORM] load() called with event_type: #{record.event_type}"
20+
puts "[TRANSFORM] record class: #{record.class.name}"
21+
puts "[TRANSFORM] record timestamp: #{record.timestamp.inspect}"
22+
puts "[TRANSFORM] record valid_at: #{record.valid_at.inspect}"
23+
end
24+
1225
old_class_name = record.event_type
1326
new_class_name = @class_map.fetch(old_class_name, old_class_name)
1427

1528
if old_class_name != new_class_name
29+
if ENV['DEBUG_TRANSFORMATIONS'] == 'true'
30+
puts "[TRANSFORM] Transforming: #{old_class_name} -> #{new_class_name}"
31+
end
32+
1633
transformed_data = transform_payload(record.data, old_class_name)
17-
record.class.new(
34+
new_record = record.class.new(
1835
event_id: record.event_id,
1936
event_type: new_class_name,
2037
data: transformed_data,
2138
metadata: record.metadata,
2239
timestamp: record.timestamp || Time.now.utc,
2340
valid_at: record.valid_at || Time.now.utc
2441
)
42+
43+
if ENV['DEBUG_TRANSFORMATIONS'] == 'true'
44+
puts "[TRANSFORM] Created new record with timestamp: #{new_record.timestamp.inspect}"
45+
end
46+
47+
new_record
2548
else
2649
record
2750
end

0 commit comments

Comments
 (0)