getJetpacks
Retrieves a list of all jetpacks.
Return
A Flow emitting a list of Jetpack objects.
Samples
import dev.atick.core.preferences.data.UserPreferencesDataSource
import dev.atick.core.room.data.LocalDataSource
import dev.atick.core.room.model.SyncAction
import dev.atick.core.utils.suspendRunCatching
import dev.atick.data.model.home.Jetpack
import dev.atick.data.model.home.mapToJetpacks
import dev.atick.data.model.home.toFirebaseJetpack
import dev.atick.data.model.home.toJetpack
import dev.atick.data.model.home.toJetpackEntity
import dev.atick.data.utils.SyncManager
import dev.atick.data.utils.SyncProgress
import dev.atick.firebase.firestore.data.FirebaseDataSource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emitAll
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.map
import timber.log.Timber
import javax.inject.Inject
fun main() {
//sampleStart
// Request a sync when fetching jetpacks
// TODO: This should be done in a more efficient way
syncManager.requestSync()
return flow {
val userId = preferencesDataSource.getUserIdOrThrow()
val jetpacks = localDataSource.getJetpacks(userId).map { it.mapToJetpacks() }
emitAll(jetpacks)
}
//sampleEnd
}