Я бы хотел связать два запроса на случай использования, когда токен запроса должен быть обновлен внутри другого вызова:
Логика должна быть такой:
- позвонить A
- произошла ошибка (неавторизовано)
- вход в систему должен быть вызван
- после успешного повторного входа вызов A должен быть повторно активирован
Текущий запуск / подход:
<T> SingleTransformer<T, T> get() {
return single -> single.retry((retryCount, throwable) -> {
boolean isRetryNecessary = false;
if (retryCount <= MAX_RETRIES) {
ExceptionCause cause = getCause(throwable);
if (cause == ExceptionCause.SSL) {
handleIt();
isRetryNecessary = true;
}
if (cause != ExceptionCause.OTHER) {
loginUser();
isRetryNecessary = true;
}
}
return isRetryNecessary;
});
loginUser:
Single loginUser() {
return Single.fromFuture(ApiCallRegister())
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
Как мне связать эти два запроса для упомянутой логики?