Skip to content

Commit b74212b

Browse files
authored
feat(entity-joiner): support for fixed time range argument (#126)
* feat(entity-joiner): support for fixed time range argument * spotless * upgrade submodule
1 parent e3b2361 commit b74212b

File tree

4 files changed

+24
-10
lines changed

4 files changed

+24
-10
lines changed

hypertrace-core-graphql

hypertrace-graphql-entity-schema/src/main/java/org/hypertrace/graphql/entity/joiner/DefaultEntityJoinerBuilder.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import lombok.extern.slf4j.Slf4j;
3737
import org.hypertrace.core.graphql.common.request.AttributeAssociation;
3838
import org.hypertrace.core.graphql.common.request.AttributeRequest;
39-
import org.hypertrace.core.graphql.common.request.AttributeRequestBuilder;
4039
import org.hypertrace.core.graphql.common.request.FilterRequestBuilder;
4140
import org.hypertrace.core.graphql.common.request.ResultSetRequest;
4241
import org.hypertrace.core.graphql.common.request.ResultSetRequestBuilder;
@@ -72,7 +71,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
7271
private final ArgumentDeserializer argumentDeserializer;
7372
private final ResultSetRequestBuilder resultSetRequestBuilder;
7473
private final FilterRequestBuilder filterRequestBuilder;
75-
private final AttributeRequestBuilder attributeRequestBuilder;
7674
private final Scheduler boundedIoScheduler;
7775
private final EntityLabelRequestBuilder entityLabelRequestBuilder;
7876

@@ -83,7 +81,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
8381
ArgumentDeserializer argumentDeserializer,
8482
ResultSetRequestBuilder resultSetRequestBuilder,
8583
FilterRequestBuilder filterRequestBuilder,
86-
AttributeRequestBuilder attributeRequestBuilder,
8784
@BoundedIoScheduler Scheduler boundedIoScheduler,
8885
EntityLabelRequestBuilder entityLabelRequestBuilder) {
8986

@@ -92,7 +89,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
9289
this.argumentDeserializer = argumentDeserializer;
9390
this.resultSetRequestBuilder = resultSetRequestBuilder;
9491
this.filterRequestBuilder = filterRequestBuilder;
95-
this.attributeRequestBuilder = attributeRequestBuilder;
9692
this.boundedIoScheduler = boundedIoScheduler;
9793
this.entityLabelRequestBuilder = entityLabelRequestBuilder;
9894
}
@@ -104,7 +100,20 @@ public Single<EntityJoiner> build(
104100
List<String> pathToEntityJoinable) {
105101
return Single.just(
106102
new DefaultEntityJoiner(
107-
context, this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
103+
context,
104+
new InstantTimeRange(),
105+
this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
106+
}
107+
108+
@Override
109+
public Single<EntityJoiner> build(
110+
GraphQlRequestContext context,
111+
TimeRangeArgument timeRange,
112+
DataFetchingFieldSelectionSet selectionSet,
113+
List<String> pathToEntityJoinable) {
114+
return Single.just(
115+
new DefaultEntityJoiner(
116+
context, timeRange, this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
108117
}
109118

110119
private String getEntityType(SelectedField entityField) {
@@ -135,6 +144,7 @@ private Multimap<String, SelectedField> groupEntityFieldsByType(
135144
@AllArgsConstructor
136145
private class DefaultEntityJoiner implements EntityJoiner {
137146
private final GraphQlRequestContext context;
147+
private final TimeRangeArgument timeRange;
138148
private final Multimap<String, SelectedField> entityFieldsByType;
139149

140150
@Override
@@ -264,7 +274,7 @@ private Single<EntityRequest> buildEntityRequest(
264274
entityType,
265275
entityIdsToFilterSize,
266276
ZERO_OFFSET,
267-
new InstantTimeRange(),
277+
timeRange,
268278
List.<AttributeAssociation<AggregatableOrderArgument>>of(), // Order does not matter
269279
filterArguments,
270280
this.entityFieldsByType.get(entityType).stream(),

hypertrace-graphql-entity-schema/src/main/java/org/hypertrace/graphql/entity/joiner/EntityJoinerBuilder.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import graphql.schema.DataFetchingFieldSelectionSet;
44
import io.reactivex.rxjava3.core.Single;
55
import java.util.List;
6+
import org.hypertrace.core.graphql.common.schema.arguments.TimeRangeArgument;
67
import org.hypertrace.core.graphql.context.GraphQlRequestContext;
78

89
public interface EntityJoinerBuilder {
@@ -11,4 +12,10 @@ Single<EntityJoiner> build(
1112
GraphQlRequestContext context,
1213
DataFetchingFieldSelectionSet selectionSet,
1314
List<String> pathToEntityJoinable);
15+
16+
Single<EntityJoiner> build(
17+
GraphQlRequestContext context,
18+
TimeRangeArgument timeRange,
19+
DataFetchingFieldSelectionSet selectionSet,
20+
List<String> pathToEntityJoinable);
1421
}

hypertrace-graphql-entity-schema/src/test/java/org/hypertrace/graphql/entity/joiner/DefaultEntityJoinerBuilderTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import lombok.Value;
2929
import lombok.experimental.Accessors;
3030
import org.hypertrace.core.graphql.common.request.AttributeAssociation;
31-
import org.hypertrace.core.graphql.common.request.AttributeRequestBuilder;
3231
import org.hypertrace.core.graphql.common.request.FilterRequestBuilder;
3332
import org.hypertrace.core.graphql.common.request.ResultSetRequest;
3433
import org.hypertrace.core.graphql.common.request.ResultSetRequestBuilder;
@@ -66,7 +65,6 @@ class DefaultEntityJoinerBuilderTest {
6665
@Mock ArgumentDeserializer mockDeserializer;
6766
@Mock ResultSetRequestBuilder mockResultSetRequestBuilder;
6867
@Mock FilterRequestBuilder mockFilterRequestBuilder;
69-
@Mock AttributeRequestBuilder attributeRequestBuilder;
7068
@Mock GraphQlRequestContext mockRequestContext;
7169
@Mock DataFetchingFieldSelectionSet mockSelectionSet;
7270
@Mock AttributeAssociation<FilterArgument> mockFilter;
@@ -86,7 +84,6 @@ void beforeEach() {
8684
mockDeserializer,
8785
mockResultSetRequestBuilder,
8886
mockFilterRequestBuilder,
89-
attributeRequestBuilder,
9087
testScheduler,
9188
mockEntityLabelRequestBuilder);
9289
}

0 commit comments

Comments
 (0)