package com.mozu.mozuandroidinstoreassistant.app.customer.loaders; import com.crashlytics.android.Crashlytics; import com.mozu.api.MozuApiContext; import com.mozu.api.contracts.customer.CustomerContact; import com.mozu.api.resources.commerce.customer.accounts.CustomerContactResource; import rx.Observable; import rx.Subscriber; public class AddCustomerContactObservable { public static Observable<CustomerContact> getCustomerContactCreationObserverable(final Integer tenantId, final Integer siteId, final Integer customerAccountId, final CustomerContact customerContact) { return Observable.create(new Observable.OnSubscribe<CustomerContact>() { @Override public void call(Subscriber<? super CustomerContact> subscriber) { if (siteId == null || tenantId == null || customerContact == null || customerAccountId == null) { subscriber.onError(new Exception("Values must not be null")); } else { CustomerContactResource customerContactResource = new CustomerContactResource(new MozuApiContext(tenantId, siteId)); try { subscriber.onNext(customerContactResource.addAccountContact(customerContact, customerAccountId)); subscriber.onCompleted(); } catch (Exception e) { Crashlytics.logException(e); subscriber.onError(e); } } } }); } public static Observable<CustomerContact> getCustomerContactUpdateObservable(final Integer tenantId, final Integer siteId, final Integer customerAccountId, final Integer customerContactId, final CustomerContact customerContact) { return Observable.create(new Observable.OnSubscribe<CustomerContact>() { @Override public void call(Subscriber<? super CustomerContact> subscriber) { if (siteId == null || tenantId == null || customerContact == null || customerAccountId == null) { subscriber.onError(new Exception("Values must not be null")); } else { CustomerContactResource customerContactResource = new CustomerContactResource(new MozuApiContext(tenantId, siteId)); try { subscriber.onNext(customerContactResource.updateAccountContact(customerContact, customerAccountId, customerContactId)); subscriber.onCompleted(); } catch (Exception e) { Crashlytics.logException(e); subscriber.onError(e); } } } }); } }