mirror of
https://github.com/bitwarden/android.git
synced 2026-03-21 13:52:07 -05:00
[PM-19783] Migrate ConfigApi and ConfigResponseJson to network module (#4964)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.x8bit.bitwarden.data.platform.datasource.disk.model
|
||||
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.x8bit.bitwarden.data.platform.datasource.network.api
|
||||
|
||||
import com.bitwarden.network.model.NetworkResult
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import retrofit2.http.GET
|
||||
|
||||
/**
|
||||
* This interface defines the API service for fetching configuration data.
|
||||
*/
|
||||
interface ConfigApi {
|
||||
|
||||
@GET("config")
|
||||
suspend fun getConfig(): NetworkResult<ConfigResponseJson>
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
package com.x8bit.bitwarden.data.platform.datasource.network.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
|
||||
/**
|
||||
* Represents the response model for configuration data fetched from the server.
|
||||
*
|
||||
* @property type The object type, typically "config".
|
||||
* @property version The version of the configuration data.
|
||||
* @property gitHash The Git hash associated with the configuration data.
|
||||
* @property server The server information (nullable).
|
||||
* @property environment The environment information containing URLs (vault, api, identity, etc.).
|
||||
* @property featureStates A map containing various feature states.
|
||||
*/
|
||||
@Serializable
|
||||
data class ConfigResponseJson(
|
||||
@SerialName("object")
|
||||
val type: String?,
|
||||
|
||||
@SerialName("version")
|
||||
val version: String?,
|
||||
|
||||
@SerialName("gitHash")
|
||||
val gitHash: String?,
|
||||
|
||||
@SerialName("server")
|
||||
val server: ServerJson?,
|
||||
|
||||
@SerialName("environment")
|
||||
val environment: EnvironmentJson?,
|
||||
|
||||
@SerialName("featureStates")
|
||||
val featureStates: Map<String, JsonPrimitive>?,
|
||||
) {
|
||||
/**
|
||||
* Represents a server in the configuration response.
|
||||
*
|
||||
* @param name The name of the server.
|
||||
* @param url The URL of the server.
|
||||
*/
|
||||
@Serializable
|
||||
data class ServerJson(
|
||||
@SerialName("name")
|
||||
val name: String?,
|
||||
|
||||
@SerialName("url")
|
||||
val url: String?,
|
||||
)
|
||||
|
||||
/**
|
||||
* Represents the environment details in the configuration response.
|
||||
*
|
||||
* @param cloudRegion The cloud region associated with the environment.
|
||||
* @param vaultUrl The URL of the vault service in the environment.
|
||||
* @param apiUrl The URL of the API service in the environment.
|
||||
* @param identityUrl The URL of the identity service in the environment.
|
||||
* @param notificationsUrl The URL of the notifications service in the environment.
|
||||
* @param ssoUrl The URL of the single sign-on (SSO) service in the environment.
|
||||
*/
|
||||
@Serializable
|
||||
data class EnvironmentJson(
|
||||
@SerialName("cloudRegion")
|
||||
val cloudRegion: String?,
|
||||
|
||||
@SerialName("vault")
|
||||
val vaultUrl: String?,
|
||||
|
||||
@SerialName("api")
|
||||
val apiUrl: String?,
|
||||
|
||||
@SerialName("identity")
|
||||
val identityUrl: String?,
|
||||
|
||||
@SerialName("notifications")
|
||||
val notificationsUrl: String?,
|
||||
|
||||
@SerialName("sso")
|
||||
val ssoUrl: String?,
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.x8bit.bitwarden.data.platform.datasource.network.service
|
||||
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
|
||||
/**
|
||||
* Provides an API for querying config endpoints.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
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
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.api.ConfigApi
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
|
||||
class ConfigServiceImpl(private val configApi: ConfigApi) : ConfigService {
|
||||
override suspend fun getConfig(): Result<ConfigResponseJson> = configApi.getConfig().toResult()
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.bitwarden.crypto.HashPurpose
|
||||
import com.bitwarden.crypto.Kdf
|
||||
import com.bitwarden.crypto.RsaKeyPair
|
||||
import com.bitwarden.crypto.TrustDeviceResponse
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
|
||||
@@ -108,7 +109,6 @@ import com.x8bit.bitwarden.data.auth.util.toSdkParams
|
||||
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.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.error.MissingPropertyException
|
||||
import com.x8bit.bitwarden.data.platform.error.NoActiveUserException
|
||||
import com.x8bit.bitwarden.data.platform.manager.FeatureFlagManager
|
||||
|
||||
@@ -3,11 +3,11 @@ package com.x8bit.bitwarden.data.platform.datasource.disk
|
||||
import androidx.core.content.edit
|
||||
import app.cash.turbine.test
|
||||
import com.bitwarden.core.di.CoreModule
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.base.FakeSharedPreferences
|
||||
import com.x8bit.bitwarden.data.platform.datasource.disk.model.ServerConfig
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.ServerJson
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.x8bit.bitwarden.data.platform.datasource.network.service
|
||||
|
||||
import com.bitwarden.core.data.util.asSuccess
|
||||
import com.bitwarden.network.api.ConfigApi
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.base.BaseServiceTest
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.api.ConfigApi
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
import okhttp3.mockwebserver.MockResponse
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.x8bit.bitwarden.data.platform.manager
|
||||
|
||||
import app.cash.turbine.test
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.disk.model.ServerConfig
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FlagKey
|
||||
import com.x8bit.bitwarden.data.platform.repository.util.FakeServerConfigRepository
|
||||
import com.x8bit.bitwarden.data.platform.util.isServerVersionAtLeast
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.x8bit.bitwarden.data.platform.repository
|
||||
|
||||
import app.cash.turbine.test
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
|
||||
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.disk.model.ServerConfig
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FlagKey
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
|
||||
@@ -2,12 +2,12 @@ package com.x8bit.bitwarden.data.platform.repository
|
||||
|
||||
import app.cash.turbine.test
|
||||
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.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.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.service.ConfigService
|
||||
import com.x8bit.bitwarden.data.platform.manager.dispatcher.DispatcherManager
|
||||
import io.mockk.coEvery
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.x8bit.bitwarden.data.platform.repository.util
|
||||
|
||||
import com.bitwarden.network.model.ConfigResponseJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.bitwarden.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.disk.model.ServerConfig
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.EnvironmentJson
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.model.ConfigResponseJson.ServerJson
|
||||
import com.x8bit.bitwarden.data.platform.repository.ServerConfigRepository
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
Reference in New Issue
Block a user