Reputation: 2309
I have working retrofit api, which return observable on some data.
Api use auth token for access to server. When auth token expired I have error message about it (Observer call onError in subscriber).
public Observable<MyObject> getObjectObservable() {
return mApi.getObject();
}
I can refresh token with observable too:
private Observable<AuthResult> restoreToken() {
return mApi.restoreToken(new RestoreTokenBody(getRestoreToken()));
}
How implement next steps in getObjectObservable function:
Upvotes: 3
Views: 1118
Reputation: 4853
Try to use operator onErrorResumeNext
Something like this:
public Observable<MyObject> getObjectObservable() {
return mApi.getObject()
.onErrorResumeNext(restoreToken().flatMap(authResult -> mApi.getObject()));
}
Upvotes: 1