fix db loading, add network log

This commit is contained in:
2026-02-18 18:44:43 +03:00
parent 705b689c58
commit 764930a574
5 changed files with 75 additions and 18 deletions

View File

@@ -3,6 +3,12 @@ package ru.fincode.tsudesk.feature.schedule.data.local
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.emitAll
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onStart
import ru.fincode.tsudesk.core.database.schedule.ScheduleDao
import ru.fincode.tsudesk.feature.schedule.data.datasource.ScheduleLocalDataSource
@@ -24,16 +30,19 @@ class ScheduleLocalDataSourceImpl @Inject constructor(
return schedule.toDomain(lessons)
}
override fun observeSchedule(key: String): Flow<ScheduleEntity?> {
val scheduleFlow = dao.observeSchedule(key) // Flow<ScheduleCacheEntity?>
val lessonsFlow = dao.observeLessons(key)
.onStart { emit(emptyList()) }
return scheduleFlow
.combine(lessonsFlow) { schedule, lessons ->
schedule?.toDomain(lessons)
override fun observeSchedule(key: String): Flow<ScheduleEntity?> = flow {
emitAll(
dao.observeSchedule(key).map { schedule ->
if (schedule == null) {
null
} else {
val lessons = dao.observeLessons(key)
.first()
schedule.toDomain(lessons)
}
}
.distinctUntilChanged()
}
)
}.distinctUntilChanged()
override suspend fun removeSchedule(key: String) {
dao.deleteLessonsByKey(key)