diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/di/PlatformNetworkModule.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/di/PlatformNetworkModule.kt index fcf69b9f02..8538cbe022 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/di/PlatformNetworkModule.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/di/PlatformNetworkModule.kt @@ -1,5 +1,7 @@ package com.x8bit.bitwarden.data.platform.datasource.network.di +import com.bitwarden.network.service.ConfigService +import com.bitwarden.network.service.ConfigServiceImpl import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource import com.x8bit.bitwarden.data.platform.datasource.network.authenticator.RefreshAuthenticator import com.x8bit.bitwarden.data.platform.datasource.network.interceptor.AuthTokenInterceptor @@ -7,8 +9,6 @@ import com.x8bit.bitwarden.data.platform.datasource.network.interceptor.BaseUrlI import com.x8bit.bitwarden.data.platform.datasource.network.interceptor.HeadersInterceptor import com.x8bit.bitwarden.data.platform.datasource.network.retrofit.Retrofits import com.x8bit.bitwarden.data.platform.datasource.network.retrofit.RetrofitsImpl -import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigService -import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigServiceImpl import com.x8bit.bitwarden.data.platform.datasource.network.service.EventService import com.x8bit.bitwarden.data.platform.datasource.network.service.EventServiceImpl import com.x8bit.bitwarden.data.platform.datasource.network.service.PushService diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceImpl.kt deleted file mode 100644 index 63a0d9890c..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceImpl.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.service - -import com.bitwarden.network.api.ConfigApi -import com.bitwarden.network.model.ConfigResponseJson -import com.bitwarden.network.util.toResult - -class ConfigServiceImpl(private val configApi: ConfigApi) : ConfigService { - override suspend fun getConfig(): Result = configApi.getConfig().toResult() -} diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryImpl.kt index df86fc3278..c76743b9f6 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryImpl.kt @@ -1,8 +1,8 @@ package com.x8bit.bitwarden.data.platform.repository +import com.bitwarden.network.service.ConfigService import com.x8bit.bitwarden.data.platform.datasource.disk.ConfigDiskSource import com.x8bit.bitwarden.data.platform.datasource.disk.model.ServerConfig -import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigService import com.x8bit.bitwarden.data.platform.manager.dispatcher.DispatcherManager import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.SharingStarted diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/di/PlatformRepositoryModule.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/di/PlatformRepositoryModule.kt index a2374122e4..05ef49f893 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/di/PlatformRepositoryModule.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/di/PlatformRepositoryModule.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.data.platform.repository.di import android.view.autofill.AutofillManager +import com.bitwarden.network.service.ConfigService import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource import com.x8bit.bitwarden.data.auth.repository.AuthRepository import com.x8bit.bitwarden.data.autofill.accessibility.manager.AccessibilityEnabledManager @@ -9,7 +10,6 @@ import com.x8bit.bitwarden.data.platform.datasource.disk.ConfigDiskSource import com.x8bit.bitwarden.data.platform.datasource.disk.EnvironmentDiskSource import com.x8bit.bitwarden.data.platform.datasource.disk.FeatureFlagOverrideDiskSource import com.x8bit.bitwarden.data.platform.datasource.disk.SettingsDiskSource -import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigService import com.x8bit.bitwarden.data.platform.manager.PolicyManager import com.x8bit.bitwarden.data.platform.manager.dispatcher.DispatcherManager import com.x8bit.bitwarden.data.platform.repository.AuthenticatorBridgeRepository diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt index fc8ca099e1..c47534f0e8 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/ServerConfigRepositoryTest.kt @@ -5,10 +5,10 @@ import com.bitwarden.core.data.util.asSuccess import com.bitwarden.network.model.ConfigResponseJson import com.bitwarden.network.model.ConfigResponseJson.EnvironmentJson import com.bitwarden.network.model.ConfigResponseJson.ServerJson +import com.bitwarden.network.service.ConfigService import com.x8bit.bitwarden.data.platform.base.FakeDispatcherManager import com.x8bit.bitwarden.data.platform.datasource.disk.model.ServerConfig import com.x8bit.bitwarden.data.platform.datasource.disk.util.FakeConfigDiskSource -import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigService import com.x8bit.bitwarden.data.platform.manager.dispatcher.DispatcherManager import io.mockk.coEvery import io.mockk.mockk diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/di/PlatformNetworkModule.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/di/PlatformNetworkModule.kt index 0a0a9f3726..8060c9b1b5 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/di/PlatformNetworkModule.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/di/PlatformNetworkModule.kt @@ -4,8 +4,8 @@ import com.bitwarden.authenticator.data.platform.datasource.network.interceptor. import com.bitwarden.authenticator.data.platform.datasource.network.interceptor.HeadersInterceptor import com.bitwarden.authenticator.data.platform.datasource.network.retrofit.Retrofits import com.bitwarden.authenticator.data.platform.datasource.network.retrofit.RetrofitsImpl -import com.bitwarden.authenticator.data.platform.datasource.network.service.ConfigService -import com.bitwarden.authenticator.data.platform.datasource.network.service.ConfigServiceImpl +import com.bitwarden.network.service.ConfigService +import com.bitwarden.network.service.ConfigServiceImpl import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigService.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigService.kt deleted file mode 100644 index f62322e851..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigService.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.bitwarden.authenticator.data.platform.datasource.network.service - -import com.bitwarden.network.model.ConfigResponseJson - -/** - * Provides an API for querying for app configurations. - */ -interface ConfigService { - - /** - * Fetch app configuration. - */ - suspend fun getConfig(): Result -} diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryImpl.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryImpl.kt index df428e08dd..10af99ae03 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryImpl.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryImpl.kt @@ -2,8 +2,8 @@ package com.bitwarden.authenticator.data.platform.repository import com.bitwarden.authenticator.data.platform.datasource.disk.ConfigDiskSource import com.bitwarden.authenticator.data.platform.datasource.disk.model.ServerConfig -import com.bitwarden.authenticator.data.platform.datasource.network.service.ConfigService import com.bitwarden.authenticator.data.platform.manager.DispatcherManager +import com.bitwarden.network.service.ConfigService import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/di/PlatformRepositoryModule.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/di/PlatformRepositoryModule.kt index 5fad4099a8..b24d72b61f 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/di/PlatformRepositoryModule.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/repository/di/PlatformRepositoryModule.kt @@ -6,7 +6,6 @@ import com.bitwarden.authenticator.data.platform.datasource.disk.ConfigDiskSourc import com.bitwarden.authenticator.data.platform.datasource.disk.FeatureFlagDiskSource import com.bitwarden.authenticator.data.platform.datasource.disk.FeatureFlagOverrideDiskSource import com.bitwarden.authenticator.data.platform.datasource.disk.SettingsDiskSource -import com.bitwarden.authenticator.data.platform.datasource.network.service.ConfigService import com.bitwarden.authenticator.data.platform.manager.BiometricsEncryptionManager import com.bitwarden.authenticator.data.platform.manager.DispatcherManager import com.bitwarden.authenticator.data.platform.repository.DebugMenuRepository @@ -17,6 +16,7 @@ import com.bitwarden.authenticator.data.platform.repository.ServerConfigReposito import com.bitwarden.authenticator.data.platform.repository.ServerConfigRepositoryImpl import com.bitwarden.authenticator.data.platform.repository.SettingsRepository import com.bitwarden.authenticator.data.platform.repository.SettingsRepositoryImpl +import com.bitwarden.network.service.ConfigService import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt deleted file mode 100644 index 8f1e28ae32..0000000000 --- a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -package com.bitwarden.authenticator.data.platform.datasource.network.service - -import com.bitwarden.core.data.util.asSuccess -import com.bitwarden.network.api.ConfigApi -import com.bitwarden.network.base.BaseServiceTest -import com.bitwarden.network.model.ConfigResponseJson -import kotlinx.coroutines.test.runTest -import kotlinx.serialization.json.JsonPrimitive -import okhttp3.mockwebserver.MockResponse -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import retrofit2.create - -class ConfigServiceTest : BaseServiceTest() { - - private val api: ConfigApi = retrofit.create() - private val service = ConfigServiceImpl(api) - - @Test - fun `getConfig should call ConfigApi`() = runTest { - server.enqueue(MockResponse().setBody(CONFIG_RESPONSE_JSON)) - assertEquals(CONFIG_RESPONSE.asSuccess(), service.getConfig()) - } -} - -private const val CONFIG_RESPONSE_JSON = """ -{ - "object": "config", - "version": "1", - "gitHash": "gitHash", - "server": { - "name": "default", - "url": "url" - }, - "environment": { - "cloudRegion": "US", - "vault": "vaultUrl", - "api": "apiUrl", - "identity": "identityUrl", - "notifications": "notificationsUrl", - "sso": "ssoUrl" - }, - "featureStates": { - "feature one": false - } -} -""" -private val CONFIG_RESPONSE = ConfigResponseJson( - type = "config", - version = "1", - gitHash = "gitHash", - server = ConfigResponseJson.ServerJson( - name = "default", - url = "url", - ), - environment = ConfigResponseJson.EnvironmentJson( - cloudRegion = "US", - vaultUrl = "vaultUrl", - apiUrl = "apiUrl", - notificationsUrl = "notificationsUrl", - identityUrl = "identityUrl", - ssoUrl = "ssoUrl", - ), - featureStates = mapOf( - "feature one" to JsonPrimitive(false), - ), -) diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryTest.kt index aae132741f..72ecc426e4 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/repository/ServerConfigRepositoryTest.kt @@ -4,12 +4,12 @@ import app.cash.turbine.test import com.bitwarden.authenticator.data.platform.base.FakeDispatcherManager import com.bitwarden.authenticator.data.platform.datasource.disk.model.ServerConfig import com.bitwarden.authenticator.data.platform.datasource.disk.util.FakeConfigDiskSource -import com.bitwarden.authenticator.data.platform.datasource.network.service.ConfigService import com.bitwarden.authenticator.data.platform.manager.DispatcherManager import com.bitwarden.core.data.util.asSuccess import com.bitwarden.network.model.ConfigResponseJson import com.bitwarden.network.model.ConfigResponseJson.EnvironmentJson import com.bitwarden.network.model.ConfigResponseJson.ServerJson +import com.bitwarden.network.service.ConfigService import io.mockk.coEvery import io.mockk.mockk import kotlinx.coroutines.test.runTest diff --git a/network/build.gradle.kts b/network/build.gradle.kts index 0025023edb..862455d09d 100644 --- a/network/build.gradle.kts +++ b/network/build.gradle.kts @@ -58,6 +58,7 @@ dependencies { testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.junit.junit5) testImplementation(libs.junit.vintage) + testImplementation(libs.kotlinx.coroutines.test) testImplementation(libs.mockk.mockk) testImplementation(libs.square.okhttp.mockwebserver) testImplementation(libs.square.turbine) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigService.kt b/network/src/main/kotlin/com/bitwarden/network/service/ConfigService.kt similarity index 78% rename from app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigService.kt rename to network/src/main/kotlin/com/bitwarden/network/service/ConfigService.kt index 84361b4337..5c36d3ace8 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigService.kt +++ b/network/src/main/kotlin/com/bitwarden/network/service/ConfigService.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.service +package com.bitwarden.network.service import com.bitwarden.network.model.ConfigResponseJson diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceImpl.kt b/network/src/main/kotlin/com/bitwarden/network/service/ConfigServiceImpl.kt similarity index 64% rename from authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceImpl.kt rename to network/src/main/kotlin/com/bitwarden/network/service/ConfigServiceImpl.kt index 9828ebf0e0..bc0431bde3 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceImpl.kt +++ b/network/src/main/kotlin/com/bitwarden/network/service/ConfigServiceImpl.kt @@ -1,12 +1,13 @@ -package com.bitwarden.authenticator.data.platform.datasource.network.service +package com.bitwarden.network.service import com.bitwarden.network.api.ConfigApi import com.bitwarden.network.model.ConfigResponseJson import com.bitwarden.network.util.toResult /** - * Default implementation of [ConfigService] for querying for app configurations. + * Default implementation of [ConfigService] for querying app configurations. */ +// TODO [PM-19846] Make internal when dependents are migrated. class ConfigServiceImpl(private val configApi: ConfigApi) : ConfigService { override suspend fun getConfig(): Result = configApi.getConfig().toResult() } diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt b/network/src/test/kotlin/com/bitwarden/network/service/ConfigServiceTest.kt similarity index 96% rename from app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt rename to network/src/test/kotlin/com/bitwarden/network/service/ConfigServiceTest.kt index ddeb571115..f90c9b442f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt +++ b/network/src/test/kotlin/com/bitwarden/network/service/ConfigServiceTest.kt @@ -1,8 +1,8 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.service +package com.bitwarden.network.service import com.bitwarden.core.data.util.asSuccess -import com.bitwarden.network.base.BaseServiceTest import com.bitwarden.network.api.ConfigApi +import com.bitwarden.network.base.BaseServiceTest import com.bitwarden.network.model.ConfigResponseJson import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.JsonPrimitive