Skip to content

Commit

Permalink
Merge pull request #338 from toquete/dependency_inversion
Browse files Browse the repository at this point in the history
Dependency inversion
  • Loading branch information
toquete authored Nov 20, 2024
2 parents 43c3d0b + 8d19906 commit 6c210fe
Show file tree
Hide file tree
Showing 73 changed files with 118 additions and 124 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.data.circuitimages.repository.CircuitImageRepository
import com.toquete.boxbox.data.constructorimages.repository.ConstructorImageRepository
import com.toquete.boxbox.data.countries.repository.CountryRepository
import com.toquete.boxbox.data.driverimages.repository.DriverImageRepository
import com.toquete.boxbox.domain.repository.CircuitImageRepository
import com.toquete.boxbox.domain.repository.ConstructorImageRepository
import com.toquete.boxbox.domain.repository.CountryRepository
import com.toquete.boxbox.domain.repository.DriverImageRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.data.constructorcolors.repository.ConstructorColorRepository
import com.toquete.boxbox.data.constructorstandings.repository.ConstructorStandingsRepository
import com.toquete.boxbox.data.driverstandings.repository.DriverStandingsRepository
import com.toquete.boxbox.data.raceresults.repository.RaceResultRepository
import com.toquete.boxbox.data.sprintresults.repository.SprintResultRepository
import com.toquete.boxbox.domain.repository.ConstructorColorRepository
import com.toquete.boxbox.domain.repository.ConstructorStandingsRepository
import com.toquete.boxbox.domain.repository.DriverStandingsRepository
import com.toquete.boxbox.domain.repository.RaceResultRepository
import com.toquete.boxbox.domain.repository.SprintResultRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.core.common.annotation.IoDispatcher
import com.toquete.boxbox.core.common.util.Syncable
import com.toquete.boxbox.data.races.repository.RaceRepository
import com.toquete.boxbox.domain.repository.RaceRepository
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.withContext
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.data.circuitimages.repository.CircuitImageRepository
import com.toquete.boxbox.data.constructorimages.repository.ConstructorImageRepository
import com.toquete.boxbox.data.countries.repository.CountryRepository
import com.toquete.boxbox.data.driverimages.repository.DriverImageRepository
import com.toquete.boxbox.domain.repository.CircuitImageRepository
import com.toquete.boxbox.domain.repository.ConstructorImageRepository
import com.toquete.boxbox.domain.repository.CountryRepository
import com.toquete.boxbox.domain.repository.DriverImageRepository
import io.mockk.coVerify
import io.mockk.mockk
import kotlinx.coroutines.test.advanceUntilIdle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.data.constructorcolors.repository.ConstructorColorRepository
import com.toquete.boxbox.data.constructorstandings.repository.ConstructorStandingsRepository
import com.toquete.boxbox.data.driverstandings.repository.DriverStandingsRepository
import com.toquete.boxbox.data.raceresults.repository.RaceResultRepository
import com.toquete.boxbox.data.sprintresults.repository.SprintResultRepository
import com.toquete.boxbox.domain.repository.ConstructorColorRepository
import com.toquete.boxbox.domain.repository.ConstructorStandingsRepository
import com.toquete.boxbox.domain.repository.DriverStandingsRepository
import com.toquete.boxbox.domain.repository.RaceResultRepository
import com.toquete.boxbox.domain.repository.SprintResultRepository
import io.mockk.coVerify
import io.mockk.mockk
import kotlinx.coroutines.test.advanceUntilIdle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.toquete.boxbox.worker.repository

import com.toquete.boxbox.data.races.repository.RaceRepository
import com.toquete.boxbox.domain.repository.RaceRepository
import io.mockk.coVerify
import io.mockk.mockk
import kotlinx.coroutines.test.UnconfinedTestDispatcher
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.toquete.boxbox.core.common.util

interface Syncable {
fun interface Syncable {

suspend fun sync()
}
3 changes: 1 addition & 2 deletions data/circuitimages/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindCircuitImageRemoteDataSource(
fun bindCircuitImageRemoteDataSource(
defaultCircuitImageRemoteDataSource: DefaultCircuitImageRemoteDataSource
): CircuitImageRemoteDataSource
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.toquete.boxbox.data.circuitimages.di

import com.toquete.boxbox.data.circuitimages.repository.CircuitImageRepository
import com.toquete.boxbox.data.circuitimages.repository.DefaultCircuitImageRepository
import com.toquete.boxbox.domain.repository.CircuitImageRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RepositoryModule {
internal fun interface RepositoryModule {

@Binds
abstract fun bindCircuitImageRepository(
fun bindCircuitImageRepository(
repository: DefaultCircuitImageRepository
): CircuitImageRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.toquete.boxbox.core.database.dao.CircuitImageDao
import com.toquete.boxbox.core.network.model.CircuitImageResponse
import com.toquete.boxbox.data.circuitimages.model.toEntity
import com.toquete.boxbox.data.circuitimages.source.remote.CircuitImageRemoteDataSource
import com.toquete.boxbox.domain.repository.CircuitImageRepository
import kotlinx.coroutines.withContext
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
Expand Down
3 changes: 1 addition & 2 deletions data/constructorcolors/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindsConstructorColorRemoteDataSource(
fun bindsConstructorColorRemoteDataSource(
remoteDataSource: DefaultConstructorColorRemoteDataSource
): ConstructorColorRemoteDataSource
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.toquete.boxbox.data.constructorcolors.di

import com.toquete.boxbox.data.constructorcolors.repository.ConstructorColorRepository
import com.toquete.boxbox.data.constructorcolors.repository.DefaultConstructorColorRepository
import com.toquete.boxbox.domain.repository.ConstructorColorRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RepositoryModule {
internal fun interface RepositoryModule {

@Binds
abstract fun bindConstructorColorRepository(
fun bindConstructorColorRepository(
defaultConstructorColorRepository: DefaultConstructorColorRepository
): ConstructorColorRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.toquete.boxbox.core.database.dao.ConstructorColorDao
import com.toquete.boxbox.core.network.model.ConstructorColorResponse
import com.toquete.boxbox.data.constructorcolors.model.toEntity
import com.toquete.boxbox.data.constructorcolors.source.remote.ConstructorColorRemoteDataSource
import com.toquete.boxbox.domain.repository.ConstructorColorRepository
import kotlinx.coroutines.withContext
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
Expand Down
3 changes: 1 addition & 2 deletions data/constructorimages/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindsConstructorImageRemoteDataSource(
fun bindsConstructorImageRemoteDataSource(
dataSource: DefaultConstructorImageRemoteDataSource
): ConstructorImageRemoteDataSource
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.toquete.boxbox.data.constructorimages.di

import com.toquete.boxbox.data.constructorimages.repository.ConstructorImageRepository
import com.toquete.boxbox.data.constructorimages.repository.DefaultConstructorImageRepository
import com.toquete.boxbox.domain.repository.ConstructorImageRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RepositoryModule {
internal fun interface RepositoryModule {

@Binds
abstract fun bindsConstructorImageRepository(
fun bindsConstructorImageRepository(
repository: DefaultConstructorImageRepository
): ConstructorImageRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.toquete.boxbox.core.database.dao.ConstructorImageDao
import com.toquete.boxbox.core.network.model.ConstructorImageResponse
import com.toquete.boxbox.data.constructorimages.model.toEntity
import com.toquete.boxbox.data.constructorimages.source.remote.ConstructorImageRemoteDataSource
import com.toquete.boxbox.domain.repository.ConstructorImageRepository
import kotlinx.coroutines.withContext
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
Expand Down
3 changes: 1 addition & 2 deletions data/constructorstandings/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
demoImplementation(libs.serialization)
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindsFullConstructorStandingsRemoteDataSource(
fun bindsFullConstructorStandingsRemoteDataSource(
dataSourceImpl: DefaultConstructorStandingsRemoteDataSource
): ConstructorStandingsRemoteDataSource
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.toquete.boxbox.data.constructorstandings.di

import com.toquete.boxbox.data.constructorstandings.repository.ConstructorStandingsRepository
import com.toquete.boxbox.data.constructorstandings.repository.DefaultConstructorStandingsRepository
import com.toquete.boxbox.domain.repository.ConstructorStandingsRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RepositoryModule {
internal fun interface RepositoryModule {

@Binds
abstract fun bindsFullConstructorStandingsRepository(
fun bindsFullConstructorStandingsRepository(
repositoryImpl: DefaultConstructorStandingsRepository
): ConstructorStandingsRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.toquete.boxbox.core.network.model.ConstructorStandingResponse
import com.toquete.boxbox.data.constructorstandings.model.toDomain
import com.toquete.boxbox.data.constructorstandings.model.toEntity
import com.toquete.boxbox.data.constructorstandings.source.remote.ConstructorStandingsRemoteDataSource
import com.toquete.boxbox.domain.repository.ConstructorStandingsRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
Expand All @@ -30,7 +31,7 @@ internal class DefaultConstructorStandingsRepository @Inject constructor(
override suspend fun sync() {
withContext(dispatcher) {
val list = remoteDataSource.getConstructorStandings()
constructorStandingDao.insertAll(list.map(ConstructorStandingResponse::toEntity))
constructorStandingDao.deleteAndInsertAllInTransaction(list.map(ConstructorStandingResponse::toEntity))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class DefaultConstructorStandingsRepositoryTest {

coVerify {
remoteDataSource.getConstructorStandings()
constructorStandingDao.insertAll(constructorStandingEntities)
constructorStandingDao.deleteAndInsertAllInTransaction(constructorStandingEntities)
}
}

Expand Down
3 changes: 1 addition & 2 deletions data/countries/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindsCountryRemoteDataSource(
fun bindsCountryRemoteDataSource(
dataSourceImpl: DefaultCountryRemoteDataSource
): CountryRemoteDataSource
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.toquete.boxbox.data.countries.di

import com.toquete.boxbox.data.countries.repository.CountryRepository
import com.toquete.boxbox.data.countries.repository.DefaultCountryRepository
import com.toquete.boxbox.domain.repository.CountryRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RepositoryModule {
internal fun interface RepositoryModule {

@Binds
abstract fun bindsCountryRepository(
fun bindsCountryRepository(
repository: DefaultCountryRepository
): CountryRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.toquete.boxbox.core.database.dao.CountryDao
import com.toquete.boxbox.core.network.model.CountryResponse
import com.toquete.boxbox.data.countries.model.toEntity
import com.toquete.boxbox.data.countries.source.remote.CountryRemoteDataSource
import com.toquete.boxbox.domain.repository.CountryRepository
import kotlinx.coroutines.withContext
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
Expand Down
3 changes: 1 addition & 2 deletions data/driverimages/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ android {
}

dependencies {
implementation(project(":core:common"))
implementation(project(":core:model"))
implementation(project(":core:database"))
implementation(project(":core:network"))
implementation(project(":domain"))
testImplementation(project(":core:testing"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
internal abstract class RemoteDataSourceModule {
internal fun interface RemoteDataSourceModule {

@Binds
abstract fun bindsDriverImageRemoteDataSource(
fun bindsDriverImageRemoteDataSource(
dataSource: DefaultDriverImageRemoteDataSource
): DriverImageRemoteDataSource
}
Loading

0 comments on commit 6c210fe

Please sign in to comment.