
jvmMain.retrofit.deferred.handlers.ResponseCodeDeferredHandler.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of network-response-jvm Show documentation
Show all versions of network-response-jvm Show documentation
NetworkResponse multiplatform
The newest version!
package com.javiersc.resources.networkResponse.retrofit.deferred.handlers
import com.javiersc.resources.networkResponse.NetworkResponse
import com.javiersc.resources.networkResponse.retrofit.utils.headers
import com.javiersc.resources.networkResponse.retrofit.utils.httpStatusCode
import com.javiersc.resources.networkResponse.utils.printlnError
import kotlinx.coroutines.CompletableDeferred
import okhttp3.ResponseBody
import retrofit2.Converter
import retrofit2.Response
internal fun Response.responseDeferredHandler(
errorConverter: Converter,
deferred: CompletableDeferred>,
) {
val errorBody: E? =
if (errorBody()?.contentLength() == 0L) null
else runCatching { errorBody()?.let { errorConverter.convert(it) } }
.getOrElse { printlnError("Error body can't be serialized with the error object provided").run { null } }
handleDeferred(deferred, httpStatusCode, body(), errorBody, headers)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy