in sdk-java/src/main/java/com/spotify/confidence/FlagResolverClientImpl.java [27:51]
public CompletableFuture<ResolveFlagsResponse> resolveFlags(
String flagName, ConfidenceValue.Struct context) {
final Instant start = Instant.now();
final Struct.Builder evaluationContextBuilder = context.toProto().getStructValue().toBuilder();
if (context.asMap().containsKey(OPEN_FEATURE_RESOLVE_CONTEXT_KEY)) {
final Value openFeatureEvaluationContext =
context.asMap().get(OPEN_FEATURE_RESOLVE_CONTEXT_KEY).toProto();
evaluationContextBuilder.putAllFields(
openFeatureEvaluationContext.getStructValue().getFieldsMap());
evaluationContextBuilder.removeFields(OPEN_FEATURE_RESOLVE_CONTEXT_KEY);
}
return this.grpcFlagResolver
.resolve(flagName, evaluationContextBuilder.build(), isProvider)
.thenApply(
response -> {
if (telemetry != null) {
final Instant end = Instant.now();
telemetry.appendLatency(Duration.between(start, end).toMillis());
}
return response;
});
}