Skip to content
2 changes: 2 additions & 0 deletions app/src/main/java/ru/yeahub/Application.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import ru.yeahub.example_details.impl.detailsFeatureModule
import ru.yeahub.example_home.impl.data.di.questionsMainFeatureModule
import ru.yeahub.example_profile.impl.profileFeatureModule
import ru.yeahub.interview_trainer.impl.createQuiz.di.createQuizModule
import ru.yeahub.interview_trainer.impl.interviewQuiz.di.interviewQuizModule
import ru.yeahub.interview_trainer.impl.interviewQuizResult.di.interviewQuizResultModule
import ru.yeahub.navigation_impl.navigationPathModule
import ru.yeahub.network_impl.networkModule
Expand Down Expand Up @@ -57,6 +58,7 @@ class Application : Application() {
collectionsAndQuestionsFeatureModule,
specializationFeatureModule,
createQuizModule,
interviewQuizModule,
interviewQuizResultModule
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ data class GetNewMockQuizResponse(
val startDate: String,
val fullCount: Int,
val skills: List<String>,
val response: List<QuestionAnswerDto>,
val response: QuizAnswersWrapperDto,
val questions: List<GetQuestionResponse>
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.yeahub.network_api.models

data class QuestionAnswerDto(
val questionId: Int,
val questionId: Long,
val questionTitle: String,
val answer: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ru.yeahub.network_api.models

data class QuizAnswersWrapperDto(
val answers: List<QuestionAnswerDto>
)
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ interface RetrofitApiService : ApiService {
@Query("isFree") isFree: Boolean
): GetCollectionsResponse

@GET("/interview-preparation/quizzes/mock/new")
@GET("interview-preparation/quizzes/mock/new")
override suspend fun getQuizMockQuestions(
@Query("skills") skills: List<String>?,
@Query("complexity") complexity: List<Int>?,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package ru.yeahub.interview_trainer.impl.interviewQuiz.di

import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module
import ru.yeahub.interview_trainer.impl.interviewQuiz.data.InterviewQuizDataToDomainMapper
import ru.yeahub.interview_trainer.impl.interviewQuiz.data.InterviewQuizRepositoryImpl
import ru.yeahub.interview_trainer.impl.interviewQuiz.domain.GetQuestionsListUseCase
import ru.yeahub.interview_trainer.impl.interviewQuiz.domain.GetQuestionsListUseCaseImpl
import ru.yeahub.interview_trainer.impl.interviewQuiz.domain.InterviewQuizRepositoryApi
import ru.yeahub.interview_trainer.impl.interviewQuiz.presentation.InterviewQuizScreenMapper
import ru.yeahub.interview_trainer.impl.interviewQuiz.presentation.InterviewQuizViewModel

val interviewQuizModule = module {
// Мапперы
single { InterviewQuizDataToDomainMapper() }
single { InterviewQuizScreenMapper() }

// Репозиторий
single<InterviewQuizRepositoryApi> {
InterviewQuizRepositoryImpl(networkProvider = get(), mapper = get())
}

// Юзкейс
single<GetQuestionsListUseCase> {
GetQuestionsListUseCaseImpl(repository = get())
}

// Вьюмодель экрана
viewModel { params ->
InterviewQuizViewModel(
savedStateHandle = params.get(),
screenMapper = get(),
getQuestionsListUseCase = get()
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ open class InterviewQuizViewModel(
selectedAnswer = userInput.selectedAnswer
)
}.catch { e ->
screenMapper.getScreenState(e)
emit(screenMapper.getScreenState(e))
}.stateIn(
scope = viewModelScopeSafe,
started = SharingStarted.WhileSubscribed(TIME_TO_CLEAN_UP_RESOURCES),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ private fun QuestionCard(
}
} else {
SecondaryButton(
onClick = {},
onClick = onResultClick,
modifier = Modifier
.width(170.dp)
.height(48.dp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import ru.yeahub.interview_trainer.impl.interviewQuiz.domain.DomainQuestionsList
import ru.yeahub.network_api.models.GetNewMockQuizResponse
import ru.yeahub.network_api.models.GetQuestionResponse
import ru.yeahub.network_api.models.NestedUserReferenceDto
import ru.yeahub.network_api.models.QuizAnswersWrapperDto
import ru.yeahub.test.TestArgumentsProvider

class InterviewQuizDataToDomainMapperTest {
Expand Down Expand Up @@ -87,7 +88,7 @@ class InterviewQuizDataToDomainMapperTest {
startDate = "01.01.2026",
fullCount = 2,
skills = emptyList(),
response = emptyList(),
response = QuizAnswersWrapperDto(emptyList()),
questions = listOf(defaultQuestionResponse, defaultQuestionResponseWithLongAnswer),
)

Expand Down
Loading