Я хочу объединить переменные company и workFor в один поток, но не знаю как. Я пытался использовать switchMap, zip, merge и concatMapIterable, но ничего не помогло. Или я что-то сделал не так ..
Моя модель данных:
data class UserCompany(
@field:Json(name = "user") val user: User,
@field:Json(name = "company") val company: Company,
@field:Json(name = "workFor") val workFor: List<Company>
)
И мой текущий код:
authApi.getCompany(getJwt()) //here I get data that looks like the above model
.subscribeOn(Schedulers.io())
.flatMapIterable {
return@flatMapIterable it.data.workFor.toMutableList().add(it.data.company) //error Type mismatch
},
//should returns stream of company and workFor
Как объединить две переменные из одного запроса с помощью Rx ?
Редактировать, лучше пример. Допустим, у нас есть:
data class Pet(val name: String)
data class PetResult(
val myPet: Pet, //dog
val otherPet: List<Pet> //cat, bird, cow
)
И я хочу получить что-то вроде этого:
authApi.getPet() // response looks like PetResult (model above)
.subscribeOn(Schedulers.io())
.subscribe(
{ petList.setSuccess(it) }, // should returns dag, cat, bird, cow
{ petList.setError(it.message) }
)
Итак, как объединить myPet с otherPet, полученным из одного запроса API?