Coverage Summary for Class: ResponseSuspendHandlerKt (com.javiersc.network.either.internal.suspend)

Class Class, % Method, % Branch, % Line, % Instruction, %
ResponseSuspendHandlerKt 100% (1/1) 100% (1/1) 70% (7/10) 71.4% (5/7) 84.8% (67/79)


 package com.javiersc.network.either.internal.suspend
 
 import com.javiersc.network.either.NetworkEither
 import com.javiersc.network.either.internal.utils.headers
 import com.javiersc.network.either.internal.utils.httpStatusCode
 import com.javiersc.network.either.internal.utils.printlnError
 import io.ktor.util.toMap
 import okhttp3.ResponseBody
 import retrofit2.Callback
 import retrofit2.Converter
 import retrofit2.Response
 
 internal fun <F : Any, S : Any> Response<S>.responseSuspendHandler(
     errorConverter: Converter<ResponseBody, F>,
     call: NetworkEitherSuspendCall<F, S>,
     callback: Callback<NetworkEither<F, S>>,
 ) {
     val errorBody: F? =
         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.value, body(), errorBody, headers.toMap())
 }