ApiResponse

sealed class ApiResponse<out T>

Author

skydoves (Jaewoong Eum)

ApiResponse is an interface for constructing standard responses from the retrofit call.

Types

Link copied to clipboard
object Companion
Link copied to clipboard
sealed class Failure<T> : ApiResponse<T>
Link copied to clipboard
data class Success<T>(val response: Response<T>) : ApiResponse<T>

Inheritors

Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
fun <T> ApiResponse<T>.getOrElse(defaultValue: T): T
inline fun <T> ApiResponse<T>.getOrElse(defaultValue: () -> T): T
Link copied to clipboard
fun <T> ApiResponse<T>.getOrNull(): T?
Link copied to clipboard
fun <T> ApiResponse<T>.getOrThrow(): T
Link copied to clipboard
val ApiResponse<Any>.isError: Boolean
Link copied to clipboard
val ApiResponse<Any>.isException: Boolean
Link copied to clipboard
val ApiResponse<Any>.isFailure: Boolean
Link copied to clipboard
val ApiResponse<Any>.isSuccess: Boolean
Link copied to clipboard
fun <T, V> ApiResponse<T>.mapSuccess(transformer: T.() -> V): ApiResponse<V>
Link copied to clipboard
fun <T> ApiResponse<List<T>>.merge(vararg responses: ApiResponse<List<T>>, mergePolicy: ApiResponseMergePolicy = ApiResponseMergePolicy.IGNORE_FAILURE): ApiResponse<List<T>>
Link copied to clipboard
inline fun <T> ApiResponse<T>.onError(crossinline onResult: ApiResponse.Failure.Error<T>.() -> Unit): ApiResponse<T>
inline fun <T, V> ApiResponse<T>.onError(mapper: ApiErrorModelMapper<V>, crossinline onResult: V.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline fun <T> ApiResponse<T>.onException(crossinline onResult: ApiResponse.Failure.Exception<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline fun <T> ApiResponse<T>.onFailure(crossinline onResult: ApiResponse.Failure<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline fun <T> ApiResponse<T>.onProcedure(    crossinline onSuccess: ApiResponse.Success<T>.() -> Unit,     crossinline onError: ApiResponse.Failure.Error<T>.() -> Unit,     crossinline onException: ApiResponse.Failure.Exception<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline fun <T> ApiResponse<T>.onSuccess(crossinline onResult: ApiResponse.Success<T>.() -> Unit): ApiResponse<T>
inline fun <T, V> ApiResponse<T>.onSuccess(mapper: ApiSuccessModelMapper<T, V>, crossinline onResult: V.() -> Unit): ApiResponse<T>
Link copied to clipboard
fun <T, V : ApiResponseOperator<T>> ApiResponse<T>.operator(apiResponseOperator: V): ApiResponse<T>
Link copied to clipboard
inline suspend fun <T> ApiResponse<T>.suspendOnError(crossinline onResult: suspend ApiResponse.Failure.Error<T>.() -> Unit): ApiResponse<T>
inline suspend fun <T, V> ApiResponse<T>.suspendOnError(mapper: ApiErrorModelMapper<V>, crossinline onResult: suspend V.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline suspend fun <T> ApiResponse<T>.suspendOnException(crossinline onResult: suspend ApiResponse.Failure.Exception<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline suspend fun <T> ApiResponse<T>.suspendOnFailure(crossinline onResult: suspend ApiResponse.Failure<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline suspend fun <T> ApiResponse<T>.suspendOnProcedure(    crossinline onSuccess: suspend ApiResponse.Success<T>.() -> Unit,     crossinline onError: suspend ApiResponse.Failure.Error<T>.() -> Unit,     crossinline onException: suspend ApiResponse.Failure.Exception<T>.() -> Unit): ApiResponse<T>
Link copied to clipboard
inline suspend fun <T> ApiResponse<T>.suspendOnSuccess(crossinline onResult: suspend ApiResponse.Success<T>.() -> Unit): ApiResponse<T>
inline suspend fun <T, V> ApiResponse<T>.suspendOnSuccess(mapper: ApiSuccessModelMapper<T, V>, crossinline onResult: suspend V.() -> Unit): ApiResponse<T>
Link copied to clipboard
suspend fun <T, V : ApiResponseSuspendOperator<T>> ApiResponse<T>.suspendOperator(apiResponseOperator: V): ApiResponse<T>
Link copied to clipboard
fun <T> ApiResponse<T>.toFlow(): Flow<T>
inline fun <T, R> ApiResponse<T>.toFlow(crossinline transformer: T.() -> R): Flow<R>
Link copied to clipboard
inline suspend fun <T, R> ApiResponse<T>.toSuspendFlow(crossinline transformer: suspend T.() -> R): Flow<R>