diff --git a/app/src/main/java/ru/practicum/android/diploma/di/InteractorModule.kt b/app/src/main/java/ru/practicum/android/diploma/di/InteractorModule.kt index 9707ef5cdd..5f12fef5fc 100644 --- a/app/src/main/java/ru/practicum/android/diploma/di/InteractorModule.kt +++ b/app/src/main/java/ru/practicum/android/diploma/di/InteractorModule.kt @@ -2,10 +2,12 @@ package ru.practicum.android.diploma.di import org.koin.dsl.module import ru.practicum.android.diploma.domain.DetailsInteractor -import ru.practicum.android.diploma.domain.SearchInteractor import ru.practicum.android.diploma.domain.FavouriteVacanciesInteractor -import ru.practicum.android.diploma.domain.impl.FavouriteVacanciesInteractorImpl +import ru.practicum.android.diploma.domain.FilterInteractor +import ru.practicum.android.diploma.domain.SearchInteractor import ru.practicum.android.diploma.domain.impl.DetailsInteractorImpl +import ru.practicum.android.diploma.domain.impl.FavouriteVacanciesInteractorImpl +import ru.practicum.android.diploma.domain.impl.FilterInteractorImpl import ru.practicum.android.diploma.domain.impl.SearchInteractorImpl val interactorModule = module { @@ -20,4 +22,8 @@ val interactorModule = module { factory { DetailsInteractorImpl(repository = get()) } + + factory { + FilterInteractorImpl(repository = get()) + } } diff --git a/app/src/main/java/ru/practicum/android/diploma/domain/FilterInteractor.kt b/app/src/main/java/ru/practicum/android/diploma/domain/FilterInteractor.kt new file mode 100644 index 0000000000..4fe102802e --- /dev/null +++ b/app/src/main/java/ru/practicum/android/diploma/domain/FilterInteractor.kt @@ -0,0 +1,14 @@ +package ru.practicum.android.diploma.domain + +import kotlinx.coroutines.flow.Flow +import ru.practicum.android.diploma.domain.models.Country +import ru.practicum.android.diploma.domain.models.Industries +import ru.practicum.android.diploma.domain.models.Region +import ru.practicum.android.diploma.util.ResponseData + +interface FilterInteractor { + suspend fun getCountries(): Flow>> + suspend fun getRegions(id: String): Flow>> + suspend fun getAllRegions(): Flow>> + suspend fun getIndustries(): Flow>> +} diff --git a/app/src/main/java/ru/practicum/android/diploma/domain/impl/FilterInteractorImpl.kt b/app/src/main/java/ru/practicum/android/diploma/domain/impl/FilterInteractorImpl.kt new file mode 100644 index 0000000000..1120805070 --- /dev/null +++ b/app/src/main/java/ru/practicum/android/diploma/domain/impl/FilterInteractorImpl.kt @@ -0,0 +1,27 @@ +package ru.practicum.android.diploma.domain.impl + +import kotlinx.coroutines.flow.Flow +import ru.practicum.android.diploma.domain.FilterInteractor +import ru.practicum.android.diploma.domain.api.FilterRepository +import ru.practicum.android.diploma.domain.models.Country +import ru.practicum.android.diploma.domain.models.Industries +import ru.practicum.android.diploma.domain.models.Region +import ru.practicum.android.diploma.util.ResponseData + +class FilterInteractorImpl(private val repository: FilterRepository) : FilterInteractor { + override suspend fun getCountries(): Flow>> { + return repository.getCountries() + } + + override suspend fun getRegions(id: String): Flow>> { + return repository.getRegions(id) + } + + override suspend fun getAllRegions(): Flow>> { + return repository.getAllRegions() + } + + override suspend fun getIndustries(): Flow>> { + return repository.getIndustries() + } +}