feat(CON-206) : [UI] - Create Data / Domain layer to retrive the configuration.

This commit is contained in:
2024-12-13 15:13:23 +01:00
parent f4949c2852
commit 56aeae61de
31 changed files with 485 additions and 12 deletions

View File

@ -16,7 +16,7 @@ import timber.log.Timber
@Module
@InstallIn(SingletonComponent::class)
class DebugNetworkModule {
class ConsentiumDebugNetworkModule {
@Provides
fun provideOkHttpBuilder(

View File

@ -9,10 +9,10 @@ import fr.openium.consentium.api.model.VendorIdentifier
import fr.openium.consentium.api.model.VendorStatus
import fr.openium.consentium.api.state.FetchConsentiumState
import fr.openium.consentium.api.state.SetConsentiumState
import fr.openium.consentium.data.di.RepositoryEntryPoint
import fr.openium.consentium.data.repository.ConsentiumRepository
import fr.openium.consentium.data.repository.ConsentiumRepositoryGetResponse
import fr.openium.consentium.data.repository.ConsentiumRepositorySetResponse
import fr.openium.consentium.domain.di.RepositoryEntryPoint
import fr.openium.consentium.domain.repository.ConsentiumRepository
import fr.openium.consentium.domain.repository.ConsentiumRepositoryGetResponse
import fr.openium.consentium.domain.repository.ConsentiumRepositorySetResponse
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow

View File

@ -28,7 +28,7 @@ private val json by lazy {
@Module
@InstallIn(SingletonComponent::class)
internal object NetworkModule {
object NetworkModule {
@OkHttpClientDefault
@Provides
@ -51,7 +51,7 @@ internal object NetworkModule {
@Reusable
@Provides
fun provideConsentiumApi(
internal fun provideConsentiumApi(
@ConsentiumUrl url: HttpUrl,
@OkHttpClientDefault okHttpClient: Lazy<OkHttpClient>,
): ConsentiumApi =
@ -71,8 +71,8 @@ internal object NetworkModule {
@Qualifier
@Retention(AnnotationRetention.BINARY)
internal annotation class ConsentiumUrl
annotation class ConsentiumUrl
@Qualifier
@Retention(AnnotationRetention.BINARY)
internal annotation class OkHttpClientDefault
annotation class OkHttpClientDefault

View File

@ -1,9 +1,9 @@
package fr.openium.consentium.data.di
package fr.openium.consentium.domain.di
import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import fr.openium.consentium.data.repository.ConsentiumRepository
import fr.openium.consentium.domain.repository.ConsentiumRepository
@EntryPoint
@InstallIn(SingletonComponent::class)

View File

@ -1,4 +1,4 @@
package fr.openium.consentium.data.repository
package fr.openium.consentium.domain.repository
import fr.openium.consentium.api.adapter.toPatchConsentPurposeDTO
import fr.openium.consentium.api.adapter.toPurpose

View File

@ -0,0 +1,18 @@
package fr.openium.consentium.domain.useCase
import fr.openium.consentium.data.local.ConsentiumDataStore
import javax.inject.Inject
interface GetConsentiumUniqueInstallationIdUseCase {
suspend fun invoke(): String
}
class GetConsentiumUniqueInstallationIdUseCaseImpl @Inject internal constructor(
private val consentiumDataStore: ConsentiumDataStore,
) : GetConsentiumUniqueInstallationIdUseCase {
override suspend fun invoke(): String {
return consentiumDataStore.getInstallationUniqueId()
}
}

View File

@ -0,0 +1,19 @@
package fr.openium.consentium.domain.useCase.di
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import fr.openium.consentium.domain.useCase.GetConsentiumUniqueInstallationIdUseCase
import fr.openium.consentium.domain.useCase.GetConsentiumUniqueInstallationIdUseCaseImpl
@Module
@InstallIn(SingletonComponent::class)
interface ConsentiumUseCaseModule {
@Binds
fun bindGetUniqueInstallationIdUseCase(
getUniqueInstallationIdUseCaseImpl: GetConsentiumUniqueInstallationIdUseCaseImpl,
): GetConsentiumUniqueInstallationIdUseCase
}