ApiServiceCallback

ApiServiceCallback

Example Source Code

open class ApiServiceCallback<T>(private val onResponseListener: OnResponseListener<T>) : Callback<T> {

    interface OnResponseListener<T> {
        fun onSuccess(body: T)
        fun onFailure(t: Throwable?)
    }

    override fun onResponse(@NonNull call: Call<T>?, @NonNull response: Response<T>) {
        if (response.isSuccessful) onResponseListener.onSuccess(response.body()!!)
        else onResponseListener.onFailure(ServerErrorException())
    }

    override fun onFailure(@NonNull call: Call<T>?, @NonNull t: Throwable?) {
        onResponseListener.onFailure(ConnectionErrorException())
    }

    class ServerErrorException : Exception()
    class ConnectionErrorException : Exception()

}