
jvmMain.retrofit.suspend.handlers.ResponseSuspendHandler.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.suspend.handlers
import com.javiersc.resources.networkResponse.NetworkResponse
import com.javiersc.resources.networkResponse.retrofit.suspend.NetworkResponseSuspendCall
import com.javiersc.resources.networkResponse.retrofit.utils.headers
import com.javiersc.resources.networkResponse.retrofit.utils.httpStatusCode
import com.javiersc.resources.networkResponse.utils.printlnError
import okhttp3.ResponseBody
import retrofit2.Callback
import retrofit2.Converter
import retrofit2.Response
internal fun Response.responseSuspendHandler(
errorConverter: Converter,
call: NetworkResponseSuspendCall,
callback: Callback>,
) {
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 } }
handleSuspend(call, callback, httpStatusCode, body(), errorBody, headers)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy