У меня есть служба модернизации, которая содержит следующий интерфейс
public interface ApiService {
@GET("/users/me")
Observable<Account> authenticateUser(@Header("Authorization") String auth);
@GET("/membership/{userId}")
SubscriptionStatus getSubscriptionStatus(@Path("userId") String userId);
}
Я хотел бы определить метод для вызова API для получения учетной записи, которая содержит идентификатор пользователя, а затем использовать этот идентификатор для выполнения второго вызова API для получения статуса подписки пользователей. SubscriptionStatus содержит логическое значение, и если оно истинно, я бы хотел, чтобы метод возвращал Observable.
Вот как я это делал до сих пор:
public Observable<Account> doLogin(ApiService service , String credentials) {
return service.authenticateuser(base64) // gets Account observable
.doOnNext(account -> {
currentAccount = account; // setting the Account Variable
})
.flatMap(account -> service.getSubscriptionStatus(account.getUserId())) // get Account Subscription status
... //unsure where to go from here I need to check
//the subscriptionStatus object and return account
//observable if condition is valid
}