package com.mozu.mozuandroidinstoreassistant.app.order.loaders;
import android.util.Log;
import com.mozu.api.MozuApiContext;
import com.mozu.api.contracts.commerceruntime.fulfillment.FulfillmentAction;
import com.mozu.api.contracts.commerceruntime.orders.Order;
import com.mozu.api.resources.commerce.orders.FulfillmentActionResource;
import rx.Observable;
import rx.Subscriber;
import rx.schedulers.Schedulers;
public class FulfillmentActionObservablesManager {
private static FulfillmentActionObservablesManager mFulfillmentActionObservablesManager;
private static FulfillmentActionResource resource;
private FulfillmentActionObservablesManager() {
}
public static FulfillmentActionObservablesManager getInstance(int tenantId, int siteId) {
if (mFulfillmentActionObservablesManager == null) {
mFulfillmentActionObservablesManager = new FulfillmentActionObservablesManager();
}
if (resource == null) {
resource = new FulfillmentActionResource(new MozuApiContext(tenantId, siteId));
}
return mFulfillmentActionObservablesManager;
}
public Observable<Order> performFulfillmentAction(final FulfillmentAction action, final String orderId) {
return Observable.create(new Observable.OnSubscribe<Order>() {
@Override
public void call(Subscriber<? super Order> subscriber) {
try {
subscriber.onNext(resource.performFulfillmentAction(action, orderId));
subscriber.onCompleted();
} catch (Exception e) {
Log.e("fulfillment action", e.toString());
subscriber.onError(e);
}
}
})
.subscribeOn(Schedulers.io());
}
}