blob: 5c29e298ae18d51de9ce556e0a9a1c60b688d13c [file] [log] [blame]
package org.apache.fineract.data.datamanager.api;
import org.apache.fineract.FakeRemoteDataSource;
import org.apache.fineract.data.local.PreferencesHelper;
import org.apache.fineract.data.models.payment.PlannedPaymentPage;
import org.apache.fineract.data.remote.BaseApiManager;
import javax.inject.Inject;
import javax.inject.Singleton;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.functions.Function;
/**
* @author Rajan Maurya
* On 13/07/17.
*/
@Singleton
public class DataManagerIndividualLending extends FineractBaseDataManager {
private final BaseApiManager baseApiManager;
private final PreferencesHelper preferencesHelper;
@Inject
public DataManagerIndividualLending(BaseApiManager baseApiManager,
PreferencesHelper preferencesHelper, DataManagerAuth dataManagerAuth) {
super(dataManagerAuth, preferencesHelper);
this.baseApiManager = baseApiManager;
this.preferencesHelper = preferencesHelper;
}
public Observable<PlannedPaymentPage> getPaymentScheduleForCase(String productIdentifier,
String caseIdentifier, Integer pageIndex, Integer size, String initialDisbursalDate) {
return authenticatedObservableApi(baseApiManager
.getIndividualLendingService().getPaymentScheduleForCase(
productIdentifier, caseIdentifier, pageIndex, size, initialDisbursalDate))
.onErrorResumeNext(
new Function<Throwable, ObservableSource<PlannedPaymentPage>>() {
@Override
public ObservableSource<PlannedPaymentPage> apply(
Throwable throwable)
throws Exception {
return Observable.just(
FakeRemoteDataSource.getPlannedPaymentPage());
}
});
}
}