13
13
import lombok .extern .slf4j .Slf4j ;
14
14
import org .hypertrace .core .graphql .common .request .AttributeRequest ;
15
15
import org .hypertrace .core .graphql .context .GraphQlRequestContext ;
16
+ import org .hypertrace .core .graphql .request .transformation .RequestTransformer ;
16
17
import org .hypertrace .core .graphql .rx .BoundedIoScheduler ;
17
18
import org .hypertrace .core .graphql .spi .config .GraphQlServiceConfig ;
18
19
import org .hypertrace .core .graphql .utils .grpc .GrpcChannelRegistry ;
@@ -44,6 +45,7 @@ class GatewayServiceEntityDao implements EntityDao {
44
45
private final GraphQlServiceConfig serviceConfig ;
45
46
private final Scheduler boundedIoScheduler ;
46
47
private final LabelJoinerBuilder labelJoinerBuilder ;
48
+ private final RequestTransformer requestTransformer ;
47
49
48
50
@ Inject
49
51
GatewayServiceEntityDao (
@@ -55,13 +57,15 @@ class GatewayServiceEntityDao implements EntityDao {
55
57
GatewayServiceEntityConverter entityConverter ,
56
58
BaselineDao baselineDao ,
57
59
LabelJoinerBuilder labelJoinerBuilder ,
60
+ RequestTransformer requestTransformer ,
58
61
@ BoundedIoScheduler Scheduler boundedIoScheduler ) {
59
62
this .grpcContextBuilder = grpcContextBuilder ;
60
63
this .requestBuilder = requestBuilder ;
61
64
this .entityConverter = entityConverter ;
62
65
this .baselineDao = baselineDao ;
63
66
this .labelJoinerBuilder = labelJoinerBuilder ;
64
67
this .serviceConfig = serviceConfig ;
68
+ this .requestTransformer = requestTransformer ;
65
69
this .boundedIoScheduler = boundedIoScheduler ;
66
70
67
71
final GrpcChannelConfig grpcChannelConfig =
@@ -81,8 +85,9 @@ class GatewayServiceEntityDao implements EntityDao {
81
85
@ Override
82
86
public Single <EntityResultSet > getEntities (EntityRequest request ) {
83
87
GraphQlRequestContext context = request .resultSetRequest ().context ();
84
- return this .requestBuilder
85
- .buildRequest (request )
88
+ return this .requestTransformer
89
+ .transform (request )
90
+ .flatMap (this .requestBuilder ::buildRequest )
86
91
.subscribeOn (this .boundedIoScheduler )
87
92
.flatMap (serverRequest -> this .fetchAndMapEntities (context , request , serverRequest ));
88
93
}
0 commit comments