Vivek Modi
04/21/2022, 9:32 PMpackage com.example.kotlinmultiplatformsharedmodule
sealed class ApiResponse<out T : Any> {
data class Success<out T : Any>(
val data: T?
) : ApiResponse<T>()
data class Error(
val exception: Throwable? = null,
val responseCode: Int = -1,
val errorResponse: ErrorResponse? = null
) : ApiResponse<Nothing>()
fun handleResult(onSuccess: ((responseData: T?) -> Unit)?,onError: ((error: Error) -> Unit)?) {
when (this) {
is Success -> {
onSuccess?.invoke(this.data)
}
is Error -> {
onError?.invoke(this)
}
}
}
}
data class ErrorResponse(
val errorCode: Int,
val errorMessage: String
)
Ron S
04/24/2022, 3:09 PM