У меня есть следующий код
class CurrencyRepository @Inject constructor(val apiInterface: ApiInterface,
val ratesDao: RatesDao) {
fun getRates(): Observable<List<Rates>> {
val observableFromApi = getCurrencyFromApi()
val observableFromDb = getRatesFromDb()
return Observable.concatArrayEager(observableFromApi , observableFromDb)
}
private fun getCurrencyFromApi(): Observable<Currency> {
return apiInterface.getRates()
.doOnNext {
Timber.i(it.toString())
val map = it.rates
val keys = map.keys
for (key in keys) {
ratesDao.insertRate(Rates(key , map.get(key)))
}
}
}
private fun getRatesFromDb(): Observable<List<Rates>> {
return ratesDao.getAllRates()
.toObservable()
.doOnNext {
for (rate in it) {
Timber.i("Repository DB ${it.size}")
}
}
}
}
В getCurrencyFromApi()
, getRates()
возвращает мне Observable<Currency>
.Я хотел бы, чтобы эта конкретная функция возвращала Observable<List<Rates>>
, чтобы я мог использовать ее в Observable.concatArrayEager
внутри getRates()
из CurrencyRepository
Валюта содержит объект Map, который можно преобразовать в объект List.Я не понимаю, как это сделать внутри getCurrencyFromApi()