package com.mozu.mozuandroidinstoreassistant.app.order;
import com.mozu.api.MozuApiContext;
import com.mozu.api.contracts.commerceruntime.returns.Return;
import com.mozu.api.contracts.commerceruntime.returns.ReturnCollection;
import com.mozu.api.resources.commerce.ReturnResource;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
public class OrderReturnFetcher {
private static final String CUSTOMER_ID_FILTER_BY = "customerAccountId eq ";
private final int MAX_PAGE_COUNT = 50;
private String mOrderNumber;
public Observable<List<Return>> getOrderReturns(Integer tenantId, Integer siteId) {
final ReturnResource returnResource = new ReturnResource(new MozuApiContext(tenantId, siteId));
return Observable
.create(new Observable.OnSubscribe<List<Return>>() {
@Override
public void call(Subscriber<? super List<Return>> subscriber) {
ReturnCollection returnCollection;
try {
if (mOrderNumber == null) {
subscriber.onError(new Throwable("No customerID provided"));
}
returnCollection = returnResource.getReturns(0, 200, null, "originalorderId eq " + mOrderNumber + " or returnorderid eq " + mOrderNumber, null);
if (returnCollection != null) {
subscriber.onNext(returnCollection.getItems());
} else {
subscriber.onError(new Throwable("No returns Available"));
}
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
}
}
});
}
public void setOrderNumber(String orderNumber){
mOrderNumber = orderNumber;
}
}