Wishnuprathikantam
02/22/2021, 11:10 AM@Serializable
data class SuccessResponse<T>(
val status: Int,
val data: T,
val message: String
) : ApiResponse()
@Serializable
data class ErrorResponse(
val status: Int,
val errorCode: Int,
val message: String
) : ApiResponse()
@Serializable
sealed class ApiResponse
//KVision: Ajax request
remoteCall(
ApiRoutes.LOGIN,
Json.encodeToString(AdminRequest.serializer(), body),
ApiResponse.serializer(),
<http://HttpMethod.POST|HttpMethod.POST>
)
when (apiResponse) {
is SuccessResponse<*> -> {
val data = apiResponse.unsafeCast<SuccessResponse<T>>()
success(data)
}
is ErrorResponse -> {
failure(apiResponse)
}
else -> {
console.log(apiResponse)
}
}
Frontend: KVision Framework (Kotlin/JS)
Backend: Ktor with GSON
Need help with deserializing sealed classes, without else block throws NoWhenBranchMatchedException
Thanks in advance.