Fix schedule models, format code
This commit is contained in:
@@ -6,8 +6,8 @@ import androidx.activity.ComponentActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleType
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.usecase.GetScheduleUseCase
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.usecase.GetScheduleUseCase.ScheduleType
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
||||
@@ -2,7 +2,7 @@ package ru.fincode.tsudesk.feature.schedule.data.mapper
|
||||
|
||||
import ru.fincode.tsudesk.feature.schedule.data.remote.model.LessonDto
|
||||
import ru.fincode.tsudesk.feature.schedule.data.remote.model.ScheduleDto
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.Lesson
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.LessonEntity
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleEntity
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -11,11 +11,11 @@ class ScheduleDtoToDomainMapper @Inject constructor() {
|
||||
operator fun invoke(dto: ScheduleDto): ScheduleEntity =
|
||||
ScheduleEntity(lessons = dto.map(::mapLesson))
|
||||
|
||||
private fun mapLesson(item: LessonDto): Lesson =
|
||||
Lesson(
|
||||
private fun mapLesson(item: LessonDto): LessonEntity =
|
||||
LessonEntity(
|
||||
date = item.date.trim(),
|
||||
time = item.time.trim(),
|
||||
subject = item.discipline.trim(),
|
||||
name = item.discipline.trim(),
|
||||
typeName = item.typeName.trim(),
|
||||
room = item.room.trim(),
|
||||
teacher = item.teacher.trim(),
|
||||
|
||||
@@ -22,7 +22,6 @@ interface ScheduleApi {
|
||||
*/
|
||||
@GET("GetSchedule.php")
|
||||
suspend fun getSchedule(
|
||||
@Query("search_field") searchField: String,
|
||||
@Query("search_value") searchValue: String
|
||||
@Query("search_field") searchField: String, @Query("search_value") searchValue: String
|
||||
): ScheduleDto
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package ru.fincode.tsudesk.feature.schedule.domain.model
|
||||
|
||||
data class LessonEntity(
|
||||
val date: String, // "12.01.2026"
|
||||
val time: String, // "11:00 - 13:55"
|
||||
val name: String, // discipline
|
||||
val typeName: String, // "Лекции", "Лабораторные занятия" и т.д.
|
||||
val room: String,
|
||||
val teacher: String,
|
||||
val groupId: String,
|
||||
val type: String // "lecture" / "lab" / "practice" / "default"
|
||||
)
|
||||
@@ -1,18 +1,7 @@
|
||||
package ru.fincode.tsudesk.feature.schedule.domain.model
|
||||
|
||||
data class ScheduleEntity(
|
||||
val lessons: List<Lesson>
|
||||
)
|
||||
|
||||
data class Lesson(
|
||||
val date: String, // "12.01.2026"
|
||||
val time: String, // "11:00 - 13:55"
|
||||
val subject: String, // discipline
|
||||
val typeName: String, // "Лекции", "Лабораторные занятия" и т.д.
|
||||
val room: String,
|
||||
val teacher: String,
|
||||
val groupId: String,
|
||||
val type: String // "lecture" / "lab" / "practice" / "default"
|
||||
val lessons: List<LessonEntity>
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package ru.fincode.tsudesk.feature.schedule.domain.model
|
||||
|
||||
sealed interface ScheduleType {
|
||||
data class Group(val number: String) : ScheduleType
|
||||
data class Teacher(val name: String) : ScheduleType
|
||||
}
|
||||
@@ -2,19 +2,14 @@ package ru.fincode.tsudesk.feature.schedule.domain.usecase
|
||||
|
||||
import ru.fincode.tsudesk.core.network.model.NetworkResult
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleEntity
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleType
|
||||
import ru.fincode.tsudesk.feature.schedule.domain.repository.ScheduleRepository
|
||||
import javax.inject.Inject
|
||||
|
||||
class GetScheduleUseCase @Inject constructor(
|
||||
private val repository: ScheduleRepository
|
||||
) {
|
||||
sealed interface ScheduleType {
|
||||
data class Group(val number: String) : ScheduleType
|
||||
data class Teacher(val name: String) : ScheduleType
|
||||
}
|
||||
|
||||
suspend operator fun invoke(type: ScheduleType): NetworkResult<ScheduleEntity> =
|
||||
when (type) {
|
||||
suspend operator fun invoke(type: ScheduleType): NetworkResult<ScheduleEntity> = when (type) {
|
||||
is ScheduleType.Group -> repository.loadScheduleByGroup(type.number)
|
||||
is ScheduleType.Teacher -> repository.loadScheduleByTeacher(type.name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user