coding-blocks/CBOnlineApp

View on GitHub
onlineapi/src/main/kotlin/com/codingblocks/onlineapi/Result.kt

Summary

Maintainability
A
0 mins
Test Coverage
package com.codingblocks.onlineapi

data class Result<out T>(val status: Status, val data: T?, val message: String?) {

    enum class Status {
        SUCCESS,
        ERROR,
        LOADING
    }

    companion object {
        fun <T> success(data: T): Result<T> {
            return Result(Status.SUCCESS, data, null)
        }

        fun <T> error(message: String, data: T? = null): Result<T> {
            return Result(Status.ERROR, data, message)
        }

        fun <T> loading(data: T? = null): Result<T> {
            return Result(Status.LOADING, data, null)
        }
    }
}