Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Single<List<AccountLoyaltyProgramHolder>> getLoyaltyPrograms() {
- GetAccountsParams params = new GetAccountsParams.Builder()
- .filter(new ImportedAccountFilter())
- .build();
- return configManager.getLoyaltyPrograms()
- .flatMap(loyaltyPrograms -> Single.fromCallable(() -> accountModel.getAccounts(params))
- .flattenAsObservable(Functions.identity())
- .filter(someAccount -> !someAccount.getAccount().getLoyalty().isEmpty())
- .flatMap(someAccount -> Observable.fromIterable(loyaltyPrograms)
- .filter(loyaltyProgram -> loyaltyProgram.getProgramId().equals(someAccount.getAccount().getLoyalty().get(0).getProgramId()))
- .defaultIfEmpty(getDefaultLoyaltyProgramm(loyaltyPrograms))
- .filter(loyaltyProgram -> loyaltyProgram.getProgramId().equals(LoyaltyProgram.DEFAULT) || loyaltyProgram.isShowInMenu())
- .map(loyaltyProgram -> AccountLoyaltyProgramHolder.create(someAccount, loyaltyProgram)))
- .distinct(holder -> holder.getLoyaltyProgram().getProgramId())
- .toList());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement