blob: 4f49f35e957df718c650a347ad20593af59d4ccd [file] [log] [blame]
package org.apache.fineract.data.datamanager.api
import io.reactivex.Observable
import io.reactivex.ObservableSource
import io.reactivex.functions.Function
import org.apache.fineract.data.local.PreferencesHelper
import org.apache.fineract.data.remote.BaseApiManager
import javax.inject.Inject
import org.apache.fineract.FakeRemoteDataSource
import org.apache.fineract.data.models.product.Product
import org.apache.fineract.data.models.product.ProductPage
import javax.inject.Singleton
@Singleton
class DataManagerProduct @Inject constructor(val baseManagerApi: BaseApiManager,
dataManagerAuth: DataManagerAuth,
val preferencesHelper: PreferencesHelper)
: FineractBaseDataManager(dataManagerAuth, preferencesHelper) {
fun fetchProductPage(): Observable<ProductPage> =
baseManagerApi.productService.fetchProductPage()
.onErrorResumeNext(Function<Throwable, ObservableSource<ProductPage>>
{ Observable.just(FakeRemoteDataSource.getProductPage()) })
fun searchProduct(identifier: String): Observable<Product> =
baseManagerApi.productService.searchProduct(identifier)
.onErrorResumeNext(Function<Throwable, ObservableSource<Product>>
{ Observable.just(FakeRemoteDataSource.getProductPage()!!.elements!![0]) })
}