Coverage Summary for Class: InterceptExceptionsAndReplaceWithNetworkEitherFailuresKt (com.javiersc.network.either.ktor._internal)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
InterceptExceptionsAndReplaceWithNetworkEitherFailuresKt |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(12/12)
|
InterceptExceptionsAndReplaceWithNetworkEitherFailuresKt$interceptExceptionsAndReplaceWithNetworkEitherFailures$1 |
100%
(1/1)
|
100%
(2/2)
|
100%
(9/9)
|
100%
(80/80)
|
Total |
100%
(2/2)
|
100%
(2/2)
|
100%
(10/10)
|
100%
(92/92)
|
package com.javiersc.network.either.ktor._internal
import io.ktor.client.HttpClient
import io.ktor.client.request.HttpSendPipeline
internal fun interceptExceptionsAndReplaceWithNetworkEitherFailures(
client: HttpClient,
isNetAvailable: () -> Boolean,
) {
client.sendPipeline.intercept(HttpSendPipeline.State) {
if (isNetAvailable()) {
try {
proceed()
} catch (throwable: Throwable) {
proceedWith(fakeHttpFailureClientCall(client))
}
} else {
try {
proceedWith(fakeLocalFailureClientCall(client))
} catch (throwable: Throwable) {
proceedWith(fakeLocalFailureClientCall(client))
}
}
}
}