Skip to content

Commit ad3beb6

Browse files
authored
feat: add support for enum in UnknownScalar (#61)
1 parent e6a3738 commit ad3beb6

File tree

2 files changed

+7
-1
lines changed
  • hypertrace-core-graphql-common-schema/src

2 files changed

+7
-1
lines changed

hypertrace-core-graphql-common-schema/src/main/java/org/hypertrace/core/graphql/common/schema/typefunctions/UnknownScalar.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import graphql.annotations.processor.typeFunctions.TypeFunction;
55
import graphql.language.ArrayValue;
66
import graphql.language.BooleanValue;
7+
import graphql.language.EnumValue;
78
import graphql.language.FloatValue;
89
import graphql.language.IntValue;
910
import graphql.language.ObjectField;
@@ -24,7 +25,8 @@ public class UnknownScalar implements TypeFunction {
2425
private static final GraphQLScalarType ATTRIBUTE_VALUE_SCALAR =
2526
GraphQLScalarType.newScalar()
2627
.name("Unknown")
27-
.description("A value of unknown type: A string, int, float, boolean, array or object")
28+
.description(
29+
"A value of unknown type: A string, int, float, boolean, array, enum or object")
2830
.coercing(
2931
new Coercing<>() {
3032
@Override
@@ -67,6 +69,9 @@ private <E> Object parseFromAst(Object input, Function<Exception, E> errorWrappe
6769
return ((ArrayValue) input)
6870
.getValues().stream().map(recurse).collect(Collectors.toUnmodifiableList());
6971
}
72+
if (input instanceof EnumValue) {
73+
return ((EnumValue) input).getName();
74+
}
7075
if (input instanceof ObjectValue) {
7176
return ((ObjectValue) input)
7277
.getObjectFields().stream()

hypertrace-core-graphql-common-schema/src/test/java/org/hypertrace/core/graphql/common/schema/scalars/UnknownScalarTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ void canDetermineIfConvertible() {
5454
assertFalse(this.unknownScalarFunction.canBuildType(Double.class, this.mockAnnotatedType));
5555
assertFalse(this.unknownScalarFunction.canBuildType(Boolean.class, this.mockAnnotatedType));
5656
assertFalse(this.unknownScalarFunction.canBuildType(List.class, this.mockAnnotatedType));
57+
assertFalse(this.unknownScalarFunction.canBuildType(Enum.class, this.mockAnnotatedType));
5758
}
5859

5960
@Test

0 commit comments

Comments
 (0)