com.deque.networking.models.ResultCall.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of axe-devtools-android-core Show documentation
Show all versions of axe-devtools-android-core Show documentation
The Axe Devtools Android Core Library
package com.deque.networking.models
import okhttp3.Request
import okio.Timeout
import retrofit2.Call
import retrofit2.Callback
import retrofit2.HttpException
import retrofit2.Response
class ResultCall(private val delegate: Call) : Call> {
override fun enqueue(callback: Callback>) {
delegate.enqueue(
object : Callback {
override fun onResponse(call: Call, response: Response) {
if (response.isSuccessful) {
callback.onResponse(
this@ResultCall,
Response.success(
response.code(),
Result.success(response.body()!!)
)
)
} else {
callback.onResponse(
this@ResultCall,
Response.success(
Result.failure(
HttpException(response)
)
)
)
}
}
override fun onFailure(call: Call, t: Throwable) {
callback.onResponse(
this@ResultCall,
Response.success(Result.failure(t))
)
}
}
)
}
override fun isExecuted(): Boolean {
return delegate.isExecuted
}
override fun execute(): Response> {
return Response.success(Result.success(delegate.execute().body()!!))
}
override fun cancel() {
delegate.cancel()
}
override fun isCanceled(): Boolean {
return delegate.isCanceled
}
override fun clone(): Call> {
return ResultCall(delegate.clone())
}
override fun request(): Request {
return delegate.request()
}
override fun timeout(): Timeout {
return delegate.timeout()
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy