File tree Expand file tree Collapse file tree 8 files changed +93
-0
lines changed
app/src/main/java/com/threegap/bitnagil/di/data
data/src/main/java/com/threegap/bitnagil/data/version Expand file tree Collapse file tree 8 files changed +93
-0
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ import com.threegap.bitnagil.data.routine.datasource.RoutineRemoteDataSource
1414import com.threegap.bitnagil.data.routine.datasourceImpl.RoutineRemoteDataSourceImpl
1515import com.threegap.bitnagil.data.user.datasource.UserDataSource
1616import com.threegap.bitnagil.data.user.datasourceImpl.UserDataSourceImpl
17+ import com.threegap.bitnagil.data.version.datasource.VersionDataSource
18+ import com.threegap.bitnagil.data.version.datasourceImpl.VersionDataSourceImpl
1719import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource
1820import com.threegap.bitnagil.data.writeroutine.datasourceImpl.WriteRoutineDataSourceImpl
1921import dagger.Binds
@@ -57,4 +59,8 @@ abstract class DataSourceModule {
5759 @Binds
5860 @Singleton
5961 abstract fun bindRecommendRoutineDataSource (recommendRoutineDataSourceImpl : RecommendRoutineDataSourceImpl ): RecommendRoutineDataSource
62+
63+ @Binds
64+ @Singleton
65+ abstract fun bindVersionDataSource (versionDataSourceImpl : VersionDataSourceImpl ): VersionDataSource
6066}
Original file line number Diff line number Diff line change @@ -6,13 +6,15 @@ import com.threegap.bitnagil.data.onboarding.repositoryImpl.OnBoardingRepository
66import com.threegap.bitnagil.data.recommendroutine.repositoryImpl.RecommendRoutineRepositoryImpl
77import com.threegap.bitnagil.data.routine.repositoryImpl.RoutineRepositoryImpl
88import com.threegap.bitnagil.data.user.repositoryImpl.UserRepositoryImpl
9+ import com.threegap.bitnagil.data.version.repositoryImpl.VersionRepositoryImpl
910import com.threegap.bitnagil.data.writeroutine.repositoryImpl.WriteRoutineRepositoryImpl
1011import com.threegap.bitnagil.domain.auth.repository.AuthRepository
1112import com.threegap.bitnagil.domain.emotion.repository.EmotionRepository
1213import com.threegap.bitnagil.domain.onboarding.repository.OnBoardingRepository
1314import com.threegap.bitnagil.domain.recommendroutine.repository.RecommendRoutineRepository
1415import com.threegap.bitnagil.domain.routine.repository.RoutineRepository
1516import com.threegap.bitnagil.domain.user.repository.UserRepository
17+ import com.threegap.bitnagil.domain.version.repository.VersionRepository
1618import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository
1719import dagger.Binds
1820import dagger.Module
@@ -51,4 +53,8 @@ abstract class RepositoryModule {
5153 @Binds
5254 @Singleton
5355 abstract fun bindRecommendRoutineRepository (recommendRoutineRepositoryImpl : RecommendRoutineRepositoryImpl ): RecommendRoutineRepository
56+
57+ @Binds
58+ @Singleton
59+ abstract fun bindVersionRepository (versionRepositoryImpl : VersionRepositoryImpl ): VersionRepository
5460}
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import com.threegap.bitnagil.data.onboarding.service.OnBoardingService
66import com.threegap.bitnagil.data.recommendroutine.service.RecommendRoutineService
77import com.threegap.bitnagil.data.routine.service.RoutineService
88import com.threegap.bitnagil.data.user.service.UserService
9+ import com.threegap.bitnagil.data.version.service.VersionService
910import com.threegap.bitnagil.data.writeroutine.service.WriteRoutineService
1011import com.threegap.bitnagil.di.core.Auth
1112import com.threegap.bitnagil.di.core.NoneAuth
@@ -60,4 +61,9 @@ object ServiceModule {
6061 @Singleton
6162 fun provideRecommendRoutineService (@Auth retrofit : Retrofit ): RecommendRoutineService =
6263 retrofit.create(RecommendRoutineService ::class .java)
64+
65+ @Provides
66+ @Singleton
67+ fun provideVersionService (@NoneAuth retrofit : Retrofit ): VersionService =
68+ retrofit.create(VersionService ::class .java)
6369}
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.version.datasource
2+
3+ import com.threegap.bitnagil.data.version.model.response.VersionCheckResponseDto
4+
5+ interface VersionDataSource {
6+ suspend fun checkVersion (): Result <VersionCheckResponseDto >
7+ }
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.version.datasourceImpl
2+
3+ import com.threegap.bitnagil.data.BuildConfig
4+ import com.threegap.bitnagil.data.common.safeApiCall
5+ import com.threegap.bitnagil.data.version.datasource.VersionDataSource
6+ import com.threegap.bitnagil.data.version.model.response.VersionCheckResponseDto
7+ import com.threegap.bitnagil.data.version.service.VersionService
8+ import javax.inject.Inject
9+
10+ class VersionDataSourceImpl @Inject constructor(
11+ private val versionService : VersionService ,
12+ ) : VersionDataSource {
13+
14+ override suspend fun checkVersion (): Result <VersionCheckResponseDto > =
15+ safeApiCall {
16+ versionService.checkVersion(
17+ majorVersion = BuildConfig .VERSION_MAJOR ,
18+ minorVersion = BuildConfig .VERSION_MINOR ,
19+ patchVersion = BuildConfig .VERSION_PATCH ,
20+ )
21+ }
22+ }
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.version.model.response
2+
3+ import com.threegap.bitnagil.domain.version.model.UpdateRequirement
4+ import kotlinx.serialization.SerialName
5+ import kotlinx.serialization.Serializable
6+
7+ @Serializable
8+ data class VersionCheckResponseDto (
9+ @SerialName(" forceUpdateYn" )
10+ val forceUpdateYn : Boolean ,
11+ )
12+
13+ fun VersionCheckResponseDto.toDomain () =
14+ UpdateRequirement (
15+ isForced = this .forceUpdateYn,
16+ )
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.version.repositoryImpl
2+
3+ import com.threegap.bitnagil.data.version.datasource.VersionDataSource
4+ import com.threegap.bitnagil.data.version.model.response.toDomain
5+ import com.threegap.bitnagil.domain.version.model.UpdateRequirement
6+ import com.threegap.bitnagil.domain.version.repository.VersionRepository
7+ import javax.inject.Inject
8+
9+ class VersionRepositoryImpl @Inject constructor(
10+ private val versionDataSource : VersionDataSource ,
11+ ) : VersionRepository {
12+
13+ override suspend fun checkVersion (): Result <UpdateRequirement > =
14+ versionDataSource.checkVersion().map { it.toDomain() }
15+ }
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.version.service
2+
3+ import com.threegap.bitnagil.data.version.model.response.VersionCheckResponseDto
4+ import com.threegap.bitnagil.network.model.BaseResponse
5+ import retrofit2.http.GET
6+ import retrofit2.http.Query
7+
8+ interface VersionService {
9+ @GET(" /api/v1/version/android/check" )
10+ suspend fun checkVersion (
11+ @Query(" major" ) majorVersion : Int ,
12+ @Query(" minor" ) minorVersion : Int ,
13+ @Query(" patch" ) patchVersion : Int ,
14+ ): BaseResponse <VersionCheckResponseDto >
15+ }
You can’t perform that action at this time.
0 commit comments