mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
In case e.g. a mutation was made which looked like this
myMutation {
mutationA { ... }
mutationB { ... }
mutationC { ... }
}
and mutation A and B succeeded while mutation C failed, the response only included the error of C and the successful mutation data response of A and B was missing
26 lines
708 B
Kotlin
26 lines
708 B
Kotlin
package suwayomi.tachidesk.graphql
|
|
|
|
import com.expediagroup.graphql.server.extensions.toGraphQLError
|
|
import graphql.execution.DataFetcherResult
|
|
import mu.KotlinLogging
|
|
|
|
val logger = KotlinLogging.logger { }
|
|
|
|
inline fun <T> asDataFetcherResult(block: () -> T): DataFetcherResult<T?> {
|
|
val result =
|
|
runCatching {
|
|
block()
|
|
}
|
|
|
|
if (result.isFailure) {
|
|
logger.error(result.exceptionOrNull()) { "asDataFetcherResult: failed due to" }
|
|
return DataFetcherResult.newResult<T?>()
|
|
.error(result.exceptionOrNull()?.toGraphQLError())
|
|
.build()
|
|
}
|
|
|
|
return DataFetcherResult.newResult<T?>()
|
|
.data(result.getOrNull())
|
|
.build()
|
|
}
|