package com.mozu.mozuandroidinstoreassistant.app.customer.loaders;
import com.mozu.api.MozuApiContext;
import com.mozu.api.contracts.commerceruntime.wishlists.Wishlist;
import com.mozu.api.contracts.commerceruntime.wishlists.WishlistCollection;
import com.mozu.api.resources.commerce.WishlistResource;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
public class CustomerWishListFetcher {
private static final String CUSTOMER_ID_FILTER_BY = "customerAccountId eq ";
private final int MAX_PAGE_COUNT = 200;
private Integer mCustomerId;
public Observable<List<Wishlist>> getWishListsByCustomerId(Integer tenantId, Integer siteId) {
final WishlistResource wishlistResource = new WishlistResource(new MozuApiContext(tenantId, siteId));
return Observable
.create(new Observable.OnSubscribe<List<Wishlist>>() {
@Override
public void call(Subscriber<? super List<Wishlist>> subscriber) {
WishlistCollection wishlistCollection;
try {
if (mCustomerId == null) {
subscriber.onError(new Throwable("No customerID provided"));
}
wishlistCollection = wishlistResource.getWishlists(0, MAX_PAGE_COUNT, null, CUSTOMER_ID_FILTER_BY + String.valueOf(mCustomerId), null, null, null);
subscriber.onNext(wishlistCollection.getItems());
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
}
}
});
}
public void setCustomerId(Integer customerId){
mCustomerId = customerId;
}
}