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()
}