Skip to content

feat(entity-joiner): support for fixed time range argument #126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Dec 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import lombok.extern.slf4j.Slf4j;
import org.hypertrace.core.graphql.common.request.AttributeAssociation;
import org.hypertrace.core.graphql.common.request.AttributeRequest;
import org.hypertrace.core.graphql.common.request.AttributeRequestBuilder;
import org.hypertrace.core.graphql.common.request.FilterRequestBuilder;
import org.hypertrace.core.graphql.common.request.ResultSetRequest;
import org.hypertrace.core.graphql.common.request.ResultSetRequestBuilder;
Expand Down Expand Up @@ -72,7 +71,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
private final ArgumentDeserializer argumentDeserializer;
private final ResultSetRequestBuilder resultSetRequestBuilder;
private final FilterRequestBuilder filterRequestBuilder;
private final AttributeRequestBuilder attributeRequestBuilder;
private final Scheduler boundedIoScheduler;
private final EntityLabelRequestBuilder entityLabelRequestBuilder;

Expand All @@ -83,7 +81,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
ArgumentDeserializer argumentDeserializer,
ResultSetRequestBuilder resultSetRequestBuilder,
FilterRequestBuilder filterRequestBuilder,
AttributeRequestBuilder attributeRequestBuilder,
@BoundedIoScheduler Scheduler boundedIoScheduler,
EntityLabelRequestBuilder entityLabelRequestBuilder) {

Expand All @@ -92,7 +89,6 @@ class DefaultEntityJoinerBuilder implements EntityJoinerBuilder {
this.argumentDeserializer = argumentDeserializer;
this.resultSetRequestBuilder = resultSetRequestBuilder;
this.filterRequestBuilder = filterRequestBuilder;
this.attributeRequestBuilder = attributeRequestBuilder;
this.boundedIoScheduler = boundedIoScheduler;
this.entityLabelRequestBuilder = entityLabelRequestBuilder;
}
Expand All @@ -104,7 +100,20 @@ public Single<EntityJoiner> build(
List<String> pathToEntityJoinable) {
return Single.just(
new DefaultEntityJoiner(
context, this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
context,
new InstantTimeRange(),
this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
}

@Override
public Single<EntityJoiner> build(
GraphQlRequestContext context,
TimeRangeArgument timeRange,
DataFetchingFieldSelectionSet selectionSet,
List<String> pathToEntityJoinable) {
return Single.just(
new DefaultEntityJoiner(
context, timeRange, this.groupEntityFieldsByType(selectionSet, pathToEntityJoinable)));
}

private String getEntityType(SelectedField entityField) {
Expand Down Expand Up @@ -135,6 +144,7 @@ private Multimap<String, SelectedField> groupEntityFieldsByType(
@AllArgsConstructor
private class DefaultEntityJoiner implements EntityJoiner {
private final GraphQlRequestContext context;
private final TimeRangeArgument timeRange;
private final Multimap<String, SelectedField> entityFieldsByType;

@Override
Expand Down Expand Up @@ -264,7 +274,7 @@ private Single<EntityRequest> buildEntityRequest(
entityType,
entityIdsToFilterSize,
ZERO_OFFSET,
new InstantTimeRange(),
timeRange,
List.<AttributeAssociation<AggregatableOrderArgument>>of(), // Order does not matter
filterArguments,
this.entityFieldsByType.get(entityType).stream(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import graphql.schema.DataFetchingFieldSelectionSet;
import io.reactivex.rxjava3.core.Single;
import java.util.List;
import org.hypertrace.core.graphql.common.schema.arguments.TimeRangeArgument;
import org.hypertrace.core.graphql.context.GraphQlRequestContext;

public interface EntityJoinerBuilder {
Expand All @@ -11,4 +12,10 @@ Single<EntityJoiner> build(
GraphQlRequestContext context,
DataFetchingFieldSelectionSet selectionSet,
List<String> pathToEntityJoinable);

Single<EntityJoiner> build(
GraphQlRequestContext context,
TimeRangeArgument timeRange,
DataFetchingFieldSelectionSet selectionSet,
List<String> pathToEntityJoinable);
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import lombok.Value;
import lombok.experimental.Accessors;
import org.hypertrace.core.graphql.common.request.AttributeAssociation;
import org.hypertrace.core.graphql.common.request.AttributeRequestBuilder;
import org.hypertrace.core.graphql.common.request.FilterRequestBuilder;
import org.hypertrace.core.graphql.common.request.ResultSetRequest;
import org.hypertrace.core.graphql.common.request.ResultSetRequestBuilder;
Expand Down Expand Up @@ -66,7 +65,6 @@ class DefaultEntityJoinerBuilderTest {
@Mock ArgumentDeserializer mockDeserializer;
@Mock ResultSetRequestBuilder mockResultSetRequestBuilder;
@Mock FilterRequestBuilder mockFilterRequestBuilder;
@Mock AttributeRequestBuilder attributeRequestBuilder;
@Mock GraphQlRequestContext mockRequestContext;
@Mock DataFetchingFieldSelectionSet mockSelectionSet;
@Mock AttributeAssociation<FilterArgument> mockFilter;
Expand All @@ -86,7 +84,6 @@ void beforeEach() {
mockDeserializer,
mockResultSetRequestBuilder,
mockFilterRequestBuilder,
attributeRequestBuilder,
testScheduler,
mockEntityLabelRequestBuilder);
}
Expand Down