diff --git a/api-core/src/main/java/com/example/api/core/data/core/ApiFactory.kt b/api-core/src/main/java/com/example/api/core/data/core/ApiFactory.kt index be64095..59510cc 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/ApiFactory.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/ApiFactory.kt @@ -9,6 +9,9 @@ import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.create +/** + * фабрика для создание инстанса интерфейса без внешнего доступа к реализации +* */ object ApiFactory { fun provideRepository(dataStoreRepository: DataStoreRepository): ApiRepository { diff --git a/api-core/src/main/java/com/example/api/core/data/core/ApiService.kt b/api-core/src/main/java/com/example/api/core/data/core/ApiService.kt index 8cde82c..84d7443 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/ApiService.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/ApiService.kt @@ -19,6 +19,9 @@ import retrofit2.http.Query * Дата создания: 27.05.2025 * */ +/** + * общий сервис для запросов +* */ internal interface ApiService { @POST("collections/users/records") diff --git a/api-core/src/main/java/com/example/api/core/data/core/AuthInterceptor.kt b/api-core/src/main/java/com/example/api/core/data/core/AuthInterceptor.kt index 576e6aa..95a9417 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/AuthInterceptor.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/AuthInterceptor.kt @@ -10,6 +10,9 @@ import okhttp3.Response * Дата создания: 27.05.2025 * */ +/** + * Перехватчик для установки токена в заголовок запроса +* */ class AuthInterceptor(private val dataStoreRepository: DataStoreRepository) : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { val token = runBlocking { dataStoreRepository.token().first() } diff --git a/api-core/src/main/java/com/example/api/core/data/core/BaseApiRepository.kt b/api-core/src/main/java/com/example/api/core/data/core/BaseApiRepository.kt index 4670fc8..4c92127 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/BaseApiRepository.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/BaseApiRepository.kt @@ -13,6 +13,9 @@ import java.net.UnknownHostException * Дата создания: 27.05.2025 * */ +/** + * общая структура обработки запросов +* */ internal interface Handle { suspend fun handle(action: suspend () -> T): FetchResult diff --git a/api-core/src/main/java/com/example/api/core/data/core/DataStoreRepository.kt b/api-core/src/main/java/com/example/api/core/data/core/DataStoreRepository.kt index 5d920ed..6b2777d 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/DataStoreRepository.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/DataStoreRepository.kt @@ -12,6 +12,9 @@ import kotlinx.coroutines.flow.map * Дата создания: 27.05.2025 * */ +/** + * Локальное хранение токена +* */ interface DataStoreRepository { suspend fun saveToken(token: String) diff --git a/api-core/src/main/java/com/example/api/core/data/core/RemoteMapper.kt b/api-core/src/main/java/com/example/api/core/data/core/RemoteMapper.kt index 00c4407..1b58dc1 100644 --- a/api-core/src/main/java/com/example/api/core/data/core/RemoteMapper.kt +++ b/api-core/src/main/java/com/example/api/core/data/core/RemoteMapper.kt @@ -17,6 +17,9 @@ import com.example.api.core.domain.SignInUserResponse * Дата создания: 27.05.2025 * */ +/** + Маппер для преобразования объектов сервера в доменные +* */ internal abstract class RemoteMapper { protected fun RegisterUser.toRegisterUserDto(): RegisterUserDto { return RegisterUserDto( diff --git a/api-core/src/test/java/com/example/api/core/ServiceTest.kt b/api-core/src/test/java/com/example/api/core/ServiceTest.kt index 7da30a2..8709fc9 100644 --- a/api-core/src/test/java/com/example/api/core/ServiceTest.kt +++ b/api-core/src/test/java/com/example/api/core/ServiceTest.kt @@ -23,6 +23,13 @@ import retrofit2.create * Дата создания: 27.05.2025 * */ +/** + * Общая структура тестов + * фейк ответ + * сверка с dto некоторые параметры + * проверка типа запроса + * проверка пути запроса + * опционально параметры и указание пути*/ class ServiceTest { private lateinit var mockWebServer: MockWebServer