package com.mozu.mozuandroidinstoreassistant.app.customer.loaders; import com.mozu.api.MozuApiContext; import com.mozu.api.contracts.customer.credit.Credit; import com.mozu.api.contracts.customer.credit.CreditCollection; import com.mozu.api.resources.commerce.customer.CreditResource; import java.util.List; import rx.Observable; import rx.Subscriber; public class StoreCreditFetcher { private static final String CUSTOMER_ID_FILTER_BY = "customerId eq "; private final int MAX_PAGE_COUNT = 200; private Integer mCustomerId; public Observable<List<Credit>> getCreditsByCustomerId(Integer tenantId, Integer siteId) { final CreditResource creditResource = new CreditResource(new MozuApiContext(tenantId, siteId)); return Observable .create(new Observable.OnSubscribe<List<Credit>>() { @Override public void call(Subscriber<? super List<Credit>> subscriber) { CreditCollection creditCollection; try { if (mCustomerId == null) { subscriber.onError(new Throwable("No customerID provided")); } creditCollection = creditResource.getCredits(0, MAX_PAGE_COUNT, null, CUSTOMER_ID_FILTER_BY + String.valueOf(mCustomerId), null); subscriber.onNext(creditCollection.getItems()); subscriber.onCompleted(); } catch (Exception e) { subscriber.onError(e); } } }); } public void setCustomerId(Integer customerId){ mCustomerId = customerId; } }