package com.mozu.mozuandroidinstoreassistant.app.order.loaders;
import com.mozu.api.MozuApiContext;
import com.mozu.api.contracts.commerceruntime.orders.Order;
import com.mozu.api.contracts.commerceruntime.orders.OrderCollection;
import com.mozu.api.resources.commerce.OrderResource;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
public class OrderFetcher {
private static final String CUSTOMER_ID_FILTER_BY = "customerAccountId eq ";
private final int MAX_PAGE_COUNT = 50;
private Integer mCustomerId;
public Observable<List<Order>> getOrdersByCustomerId(Integer tenantId, Integer siteId) {
final OrderResource orderResource = new OrderResource(new MozuApiContext(tenantId, siteId));
return Observable
.create(new Observable.OnSubscribe<List<Order>>() {
@Override
public void call(Subscriber<? super List<Order>> subscriber) {
OrderCollection orderCollection;
try {
if (mCustomerId == null) {
subscriber.onError(new Throwable("No customerID provided"));
}
orderCollection = orderResource.getOrders(0, MAX_PAGE_COUNT, null, CUSTOMER_ID_FILTER_BY + String.valueOf(mCustomerId), null, null, null);
subscriber.onNext(orderCollection.getItems());
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
}
}
});
}
public void setCustomerId(Integer customerId){
mCustomerId = customerId;
}
}