blob: 116bde11ba29aa52d2db506f5ef673621e9f8b9e [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.rolesandpermission.Role;
import org.apache.fineract.data.remote.BaseApiManager;
import java.util.List;
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 24/08/17.
*/
@Singleton
public class DataManagerRoles extends FineractBaseDataManager {
private final BaseApiManager baseApiManager;
private final PreferencesHelper preferencesHelper;
@Inject
public DataManagerRoles(BaseApiManager baseApiManager,
DataManagerAuth dataManagerAuth, PreferencesHelper preferencesHelper) {
super(dataManagerAuth, preferencesHelper);
this.baseApiManager = baseApiManager;
this.preferencesHelper = preferencesHelper;
}
public Observable<List<Role>> getRoles() {
return authenticatedObservableApi(
baseApiManager.getRolesAndPermissionsService().getRoles())
.onErrorResumeNext(
new Function<Throwable, ObservableSource<List<Role>>>() {
@Override
public ObservableSource<List<Role>> apply(Throwable throwable)
throws Exception {
return Observable.just(FakeRemoteDataSource.getRoles());
}
});
}
}