Yannick Lazzari
09/28/2022, 7:55 PMkotlin.reflect.jvm.internal.KotlinReflectionInternalError: This callable does not support a default calldepending on how you call it. Details inside thread.
Yannick Lazzari
09/28/2022, 7:55 PMYannick Lazzari
09/28/2022, 7:56 PMdata class UserInput(id: ID, firstName: String? = null, lastName: String? = null)
and mutation:
fun updateUser(user: UserInput): Boolean = true
giving us schema:
type Mutation {
updateUser(user: User!): Boolean!
}
input UserInput {
id: ID!
firstName: String
lastName: String
}
So, a mutation where you can either update a user's first name, or last name, or both, or nothing.Yannick Lazzari
09/28/2022, 8:01 PMmutation {
updateUser(
user: {
id: "123"
firstName: "John"
lastName: "Doe"
}
)
}
but if you just specify either only the first name (or last name):
mutation {
updateUser(
user: {
id: "123"
firstName: "John"
}
)
}
it fails with something that looks like (stripped down version of the stacktrace):
kotlin.reflect.jvm.internal.KotlinReflectionInternalError: This callable does not support a default call: ...
Original Stack Trace:
at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:164) ~[kotlin-reflect-1.6.21.jar:1.6.21-release-334(1.6.21)]
at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:112) ~[kotlin-reflect-1.6.21.jar:1.6.21-release-334(1.6.21)]
at com.expediagroup.graphql.generator.execution.ConvertArgumentValueKt.mapToKotlinObject(convertArgumentValue.kt:121) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.generator.execution.ConvertArgumentValueKt.convertValue(convertArgumentValue.kt:76) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.generator.execution.ConvertArgumentValueKt.convertArgumentValue(convertArgumentValue.kt:54) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.mapParameterToValue(FunctionDataFetcher.kt:101) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.server.spring.execution.SpringDataFetcher.mapParameterToValue(SpringDataFetcher.kt:48) ~[graphql-kotlin-spring-server-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.getParameters(FunctionDataFetcher.kt:79) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.get(FunctionDataFetcher.kt:58) ~[graphql-kotlin-schema-generator-6.2.2.jar:6.2.2]
at graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentation.lambda$instrumentDataFetcher$0(DataLoaderDispatcherInstrumentation.java:86) ~[graphql-java-19.1.jar:?]
Yannick Lazzari
09/28/2022, 8:02 PMid
field in the data class to a String
instead, it actually works.Dariusz Kuc
09/28/2022, 8:04 PMDariusz Kuc
09/28/2022, 8:04 PMYannick Lazzari
09/28/2022, 8:04 PMYannick Lazzari
09/28/2022, 8:05 PMID
instead, such that we can keep the same schema and adjust the implementation?Dariusz Kuc
09/28/2022, 8:05 PMYannick Lazzari
09/28/2022, 8:07 PMDariusz Kuc
09/28/2022, 8:07 PMIs there way to declare the field as string in the code but expose the type aspretty sure you could do it through hooks but it will be a manual setupinstead, such that we can keep the same schema and adjust the implementation?ID
Yannick Lazzari
09/28/2022, 8:10 PMDariusz Kuc
09/28/2022, 8:11 PMYannick Lazzari
09/28/2022, 8:12 PMYannick Lazzari
09/28/2022, 8:13 PMDariusz Kuc
09/28/2022, 8:13 PMYannick Lazzari
09/28/2022, 8:16 PMDariusz Kuc
09/28/2022, 8:17 PMYannick Lazzari
09/28/2022, 8:18 PMDariusz Kuc
09/28/2022, 8:18 PMYannick Lazzari
09/28/2022, 8:19 PMShane Myrick
09/28/2022, 10:40 PMdata class UserInput(
@GraphQLType("ID")
id: String,
firstName: String? = null,
lastName: String? = null
)
And you shouldn’t have to manually register the ID
type since that is a built-in scalar
At least that would work for output, but I don’t know for sure if it would work for inputDariusz Kuc
09/28/2022, 10:48 PMYannick Lazzari
09/28/2022, 11:49 PMDariusz Kuc
09/28/2022, 11:59 PMYannick Lazzari
09/29/2022, 12:06 AMSamuel Vazquez
09/29/2022, 3:15 AMSamuel Vazquez
09/29/2022, 3:19 AMSamuel Vazquez
09/29/2022, 3:21 AMYannick Lazzari
09/29/2022, 12:39 PMSamuel Vazquez
10/17/2022, 6:06 PMYannick Lazzari
10/17/2022, 6:25 PM