
commonMain.extensions.NetworkResponse.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.extensions
import com.javiersc.resources.networkResponse.NetworkResponse
import com.javiersc.resources.resource.Resource
import io.ktor.http.Headers
import io.ktor.http.HttpStatusCode
import kotlin.jvm.JvmName
/**
* Map NetworkResponse to Resource where:
* - NetworkResponse.Success -> Resource.Success
* - NetworkResponse.Error -> Resource.Error
* - NetworkResponse.UnknownError -> Resource.Error
* - NetworkResponse.RemoteNotAvailable -> Resource.Error
* - NetworkResponse.InternetNotAvailable -> Resource.Error
*/
public fun NetworkResponse.toResource(
success: (NR, HttpStatusCode, Headers) -> R,
error: (NE, HttpStatusCode, Headers) -> E,
unknownError: (Throwable) -> E,
remoteNotAvailable: () -> E,
internetNotAvailable: () -> E,
): Resource = when (this) {
is NetworkResponse.Success -> Resource.Success(success(data, status, headers))
is NetworkResponse.Error -> Resource.Error(error(this.error, status, headers))
is NetworkResponse.UnknownError -> Resource.Error(unknownError(throwable))
is NetworkResponse.RemoteNotAvailable -> Resource.Error(remoteNotAvailable())
is NetworkResponse.InternetNotAvailable -> Resource.Error(internetNotAvailable())
}
/**
* Simpler function for mapping NetworkResponse to Resource where:
* - NetworkResponse.Success -> Resource.Success
* - NetworkResponse.Error -> Resource.Error
* - NetworkResponse.UnknownError -> Resource.Error
* - NetworkResponse.RemoteNotAvailable -> Resource.Error
* - NetworkResponse.InternetNotAvailable -> Resource.Error
*/
@JvmName("toResource2")
public fun NetworkResponse.toResource(
success: (NR) -> R,
error: (NE) -> E,
unknownError: (Throwable) -> E,
remoteNotAvailable: () -> E,
internetNotAvailable: () -> E,
): Resource = when (this) {
is NetworkResponse.Success -> Resource.Success(success(data))
is NetworkResponse.Error -> Resource.Error(error(this.error))
is NetworkResponse.UnknownError -> Resource.Error(unknownError(throwable))
is NetworkResponse.RemoteNotAvailable -> Resource.Error(remoteNotAvailable())
is NetworkResponse.InternetNotAvailable -> Resource.Error(internetNotAvailable())
}
/**
* Simpler function for mapping NetworkResponse to Resource where:
* - NetworkResponse.Success -> Resource.Success
* - NetworkResponse.Error -> Resource.Error
* - NetworkResponse.UnknownError -> Resource.Error
* - NetworkResponse.RemoteNotAvailable> -> Resource.Error
* - NetworkResponse.InternetNotAvailable -> Resource.Error
*/
@JvmName("toResource3")
public fun NetworkResponse.toResource(
success: (NR) -> R,
error: (HttpStatusCode) -> E,
unknownError: (Throwable) -> E,
remoteNotAvailable: () -> E,
internetNotAvailable: () -> E,
): Resource = when (this) {
is NetworkResponse.Success -> Resource.Success(success(data))
is NetworkResponse.Error -> Resource.Error(error(status))
is NetworkResponse.UnknownError -> Resource.Error(unknownError(throwable))
is NetworkResponse.RemoteNotAvailable -> Resource.Error(remoteNotAvailable())
is NetworkResponse.InternetNotAvailable -> Resource.Error(internetNotAvailable())
}
/**
* Simpler function for mapping NetworkResponse to Resource where:
* - NetworkResponse.Success -> Resource.Success
* - NetworkResponse.Error -> Resource.Error
*
* Notes:
* - There is no error data
* - UnknownError, RemoteNotAvailable and InternetNotAvailable are mapped with error too.
*/
@JvmName("toResource4")
public fun NetworkResponse.toResource(
success: (NR) -> R,
error: () -> E,
): Resource = when (this) {
is NetworkResponse.Success -> Resource.Success(success(data))
is NetworkResponse.Error -> Resource.Error(error())
is NetworkResponse.UnknownError -> Resource.Error(error())
is NetworkResponse.RemoteNotAvailable -> Resource.Error(error())
is NetworkResponse.InternetNotAvailable -> Resource.Error(error())
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy