How to set a default value for enum type @GraphQLArgument

59 views Asked by At

How to set a default value for enum type @GraphQLArgument?

public enum CursorDirection {
    @GraphQLEnumValue(name = "FORWARD")
    FORWARD,
    @GraphQLEnumValue(name = "BACKWARD")
    BACKWARD;
}

Setting to enum name as defaultValue gives below error..

@GraphQLArgument(name = "cursorDirection", description = CURSOR_DIRECTION_DESC, defaultValue = "FORWARD")
CursorDirection cursorDirection

Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'FORWARD': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 8]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2481) ~[jackson-core-2.16.1.jar:2.16.1]
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:762) ~[jackson-core-2.16.1.jar:2.16.1]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:3042) ~[jackson-core-2.16.1.jar:2.16.1]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2085) ~[jackson-core-2.16.1.jar:2.16.1]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:812) ~[jackson-core-2.16.1.jar:2.16.1]
1

There are 1 answers

1
kaqqao On

Default values have to be valid JSON (I think when the expected type is String (and not enum) the value can be left unquoted, but not certain off the top of my head):

defaultValue = "\"FORWARD\""