Comments (8)
Hey @ldileh, what is the return type of the otpVerification
method? You should return a non-nullable type for using it.
from sandwich.
otpVerification
return ApiResponse<BaseResponse<TokenResponseModel>>
.
inside the class BaseResponse is :
@Keep @Serializable data class BaseResponse<T>( @SerializedName("error") val error: ErrorModel? = null, @SerializedName("success") val success: Boolean?, @SerializedName("data") val data: T? = null )
and for class TokenResponseModel is :
@Keep data class TokenResponseModel( @SerializedName("accessToken") val accessToken: String?, @SerializedName("refreshToken") val refreshToken: String? )
from sandwich.
@ldileh What happens if you add !!
at the end of the otpVerification
method?
from sandwich.
I just tested with the demo project and it looks work for me.
interface DisneyService {
@GET("")
suspend fun fetchItems(): ApiResponse<BaseResponse<List<Poster>>>
}
val retryPolicy = object : RetryPolicy {
override fun shouldRetry(attempt: Int, message: String?): Boolean = false
override fun retryTimeout(attempt: Int, message: String?): Int = 3
}
runAndRetry(retryPolicy) { _, _ ->
disneyService.fetchItems()
}
from sandwich.
oh great it's work! what happens in that part?
from sandwich.
I don't know the details of the otpVerification
method, but it returns a nullable type for some reason.
from sandwich.
then what if the body response had case null? how can I handle that part?
let's say, the problem is in the endpoint :
case 1: success it returns json body
case 2 : It return success HTTP code, but for some reason, the body is null because the endpoint had a problem.
how can I handle case 2? it will turn to method onError
or onException
automatically?
usually I handle this case with nullable symbols. That way, usually the application won't crash and we just have to handle the null response
from sandwich.
ah sorry @skydoves, I just read the documentation again. apparently I can use getOrNull(). stupid of me lol
thanks btw bro @skydoves for your support
from sandwich.
Related Issues (20)
- After enable R8 full mode getting ParameterizedType error HOT 7
- Maven Central Gradle 8 compatibility
- How to handle data structures like BaseResponse HOT 2
- Integrate Benchmark + Baseline Profiles
- Cannot inline bytecode built with JVM target 11 into bytecode that is being built with JVM target 1.8. Please specify proper '-jvm-target' option HOT 1
- Interface can't be instantiated! Register an InstanceCreator or a TypeAdapter for this type. HOT 2
- Difference Exception Handling between Ktor and Retrofit HOT 1
- ApiResponseCallAdapterFactory is missing in 2.0.4 HOT 2
- deserializeErrorBody() throws internal exceptions HOT 6
- Any Roadmap to Support Kotlin Multiplatform? HOT 2
- Can I use Sandwich with Mongodb Realm API HOT 1
- Couldn't resolve ApiResponseCallAdapter class HOT 1
- Global ApiResponseFailureMapper not returning desired results HOT 1
- [ASK] Best Practices For Merging Network Call Data into Custom Model.
- How to get custom error from my server? HOT 1
- [Help] Is it the best approach to validate responses? HOT 2
- Dependency Dashboard
- EmptyBodyInterceptor doesn't work with GsonConverterFactory HOT 6
- java.lang.NullPointerException:::sandwich.ApiResponse$Failure$Error.toString HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sandwich.