4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'projects/entities_plumbing/src/extensions/command_registry/exposed_command_entities.rb', line 4
def initialize(
command_class,
pre_commit_transformers: nil,
serializers: nil,
aggregate_entities: nil,
atomic_entities: nil,
**
)
if aggregate_entities
pre_commit_transformers = [
*pre_commit_transformers,
CommandConnectors::Transformers::LoadAggregatesPreCommitTransformer
]
pre_commit_transformers.uniq!
pre_commit_transformers.delete(CommandConnectors::Transformers::LoadAtomsPreCommitTransformer)
serializers = [*serializers, CommandConnectors::Serializers::AggregateSerializer]
serializers.uniq!
serializers.delete(Foobara::CommandConnectors::Serializers::AtomicSerializer)
elsif aggregate_entities == false
pre_commit_transformers = pre_commit_transformers&.reject do |t|
t == Foobara::CommandConnectors::Transformers::LoadAggregatesPreCommitTransformer
end
serializers = serializers&.reject do |s|
s == Foobara::CommandConnectors::Serializers::AggregateSerializer
end
elsif atomic_entities
pre_commit_transformers = [
*pre_commit_transformers,
CommandConnectors::Transformers::LoadAtomsPreCommitTransformer
]
pre_commit_transformers.uniq!
pre_commit_transformers.delete(CommandConnectors::Transformers::LoadAggregatesPreCommitTransformer)
serializers = [*serializers, Foobara::CommandConnectors::Serializers::AtomicSerializer]
serializers.uniq!
serializers.delete(CommandConnectors::Serializers::AggregateSerializer)
end
unless aggregate_entities
if _has_delegated_attributes?(command_class.result_type)
pre_commit_transformers = [
*pre_commit_transformers,
CommandConnectors::Transformers::LoadDelegatedAttributesEntitiesPreCommitTransformer
]
pre_commit_transformers.uniq!
end
end
super(
command_class,
pre_commit_transformers:,
serializers:,
**
)
end
|