File tree Expand file tree Collapse file tree 12 files changed +171
-0
lines changed
app/src/main/java/com/threegap/bitnagil/di/data
data/src/main/java/com/threegap/bitnagil/data/emotion Expand file tree Collapse file tree 12 files changed +171
-0
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ import com.threegap.bitnagil.data.auth.datasource.AuthLocalDataSource
44import com.threegap.bitnagil.data.auth.datasource.AuthRemoteDataSource
55import com.threegap.bitnagil.data.auth.datasourceimpl.AuthLocalDataSourceImpl
66import com.threegap.bitnagil.data.auth.datasourceimpl.AuthRemoteDataSourceImpl
7+ import com.threegap.bitnagil.data.emotion.datasource.EmotionDataSource
8+ import com.threegap.bitnagil.data.emotion.datasourceImpl.EmotionDataSourceImpl
79import com.threegap.bitnagil.data.onboarding.datasource.OnBoardingDataSource
810import com.threegap.bitnagil.data.onboarding.datasourceImpl.OnBoardingDataSourceImpl
911import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource
@@ -30,6 +32,10 @@ abstract class DataSourceModule {
3032 @Singleton
3133 abstract fun bindOnBoardingDataSource (onBoardingDataSourceImpl : OnBoardingDataSourceImpl ): OnBoardingDataSource
3234
35+ @Binds
36+ @Singleton
37+ abstract fun bindEmotionDataSource (emotionDataSourceImpl : EmotionDataSourceImpl ): EmotionDataSource
38+
3339 @Binds
3440 @Singleton
3541 abstract fun bindWriteRoutineDataSource (writeRoutineDataSourceImpl : WriteRoutineDataSourceImpl ): WriteRoutineDataSource
Original file line number Diff line number Diff line change 11package com.threegap.bitnagil.di.data
22
33import com.threegap.bitnagil.data.auth.repositoryimpl.AuthRepositoryImpl
4+ import com.threegap.bitnagil.data.emotion.repositoryImpl.EmotionRepositoryImpl
45import com.threegap.bitnagil.data.onboarding.repositoryImpl.OnBoardingRepositoryImpl
56import com.threegap.bitnagil.data.writeroutine.repositoryImpl.WriteRoutineRepositoryImpl
67import com.threegap.bitnagil.domain.auth.repository.AuthRepository
8+ import com.threegap.bitnagil.domain.emotion.repository.EmotionRepository
79import com.threegap.bitnagil.domain.onboarding.repository.OnBoardingRepository
810import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository
911import dagger.Binds
@@ -24,6 +26,10 @@ abstract class RepositoryModule {
2426 @Singleton
2527 abstract fun bindOnBoardingRepository (onBoardingRepositoryImpl : OnBoardingRepositoryImpl ): OnBoardingRepository
2628
29+ @Binds
30+ @Singleton
31+ abstract fun bindEmotionRepository (emotionRepositoryImpl : EmotionRepositoryImpl ): EmotionRepository
32+
2733 @Binds
2834 @Singleton
2935 abstract fun bindWriteRoutineRepository (writeRoutineRepositoryImpl : WriteRoutineRepositoryImpl ): WriteRoutineRepository
Original file line number Diff line number Diff line change 11package com.threegap.bitnagil.di.data
22
33import com.threegap.bitnagil.data.auth.service.AuthService
4+ import com.threegap.bitnagil.data.emotion.service.EmotionService
45import com.threegap.bitnagil.data.onboarding.service.OnBoardingService
56import com.threegap.bitnagil.data.writeroutine.service.WriteRoutineService
67import com.threegap.bitnagil.di.core.Auth
@@ -27,6 +28,11 @@ object ServiceModule {
2728 fun providerOnBoardingService (@Auth retrofit : Retrofit ): OnBoardingService =
2829 retrofit.create(OnBoardingService ::class .java)
2930
31+ @Provides
32+ @Singleton
33+ fun providerEmotionService (@Auth retrofit : Retrofit ): EmotionService =
34+ retrofit.create(EmotionService ::class .java)
35+
3036 @Provides
3137 @Singleton
3238 fun providerWriteRoutineService (@Auth retrofit : Retrofit ): WriteRoutineService =
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.datasource
2+
3+ import com.threegap.bitnagil.data.emotion.model.response.GetEmotionsResponse
4+ import com.threegap.bitnagil.data.emotion.model.response.RegisterEmotionResponse
5+
6+ interface EmotionDataSource {
7+ suspend fun getEmotions (): Result <GetEmotionsResponse >
8+ suspend fun registerEmotion (emotion : String ): Result <RegisterEmotionResponse >
9+ }
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.datasourceImpl
2+
3+ import com.threegap.bitnagil.data.common.safeApiCall
4+ import com.threegap.bitnagil.data.emotion.datasource.EmotionDataSource
5+ import com.threegap.bitnagil.data.emotion.model.request.RegisterEmotionRequest
6+ import com.threegap.bitnagil.data.emotion.model.response.GetEmotionsResponse
7+ import com.threegap.bitnagil.data.emotion.model.response.RegisterEmotionResponse
8+ import com.threegap.bitnagil.data.emotion.service.EmotionService
9+ import javax.inject.Inject
10+
11+ class EmotionDataSourceImpl @Inject constructor(
12+ private val emotionService : EmotionService
13+ ) : EmotionDataSource {
14+ override suspend fun getEmotions (): Result <GetEmotionsResponse > {
15+ return safeApiCall {
16+ emotionService.getEmotions()
17+ }
18+ }
19+
20+ override suspend fun registerEmotion (emotion : String ): Result <RegisterEmotionResponse > {
21+ val registerEmotionRequest = RegisterEmotionRequest (emotionMarbleType = emotion)
22+ return safeApiCall {
23+ emotionService.postEmotions(registerEmotionRequest)
24+ }
25+ }
26+ }
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.model.dto
2+
3+ import kotlinx.serialization.SerialName
4+ import kotlinx.serialization.Serializable
5+
6+ @Serializable
7+ data class EmotionRecommendedRoutineDto (
8+ @SerialName(" recommendedRoutineId" )
9+ val recommendedRoutineId : Int ,
10+ @SerialName(" recommendedRoutineName" )
11+ val recommendedRoutineName : String ,
12+ @SerialName(" routineDescription" )
13+ val routineDescription : String ,
14+ @SerialName(" recommendedSubRoutines" )
15+ val recommendedSubRoutines : List <EmotionRecommendedSubRoutineDto >
16+ )
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.model.dto
2+
3+ import kotlinx.serialization.SerialName
4+ import kotlinx.serialization.Serializable
5+
6+ @Serializable
7+ data class EmotionRecommendedSubRoutineDto (
8+ @SerialName(" recommendedSubRoutineId" )
9+ val recommendedSubRoutineId : Int ,
10+ @SerialName(" recommendedSubRoutineName" )
11+ val recommendedSubRoutineName : String ,
12+ )
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.model.request
2+
3+ import kotlinx.serialization.SerialName
4+ import kotlinx.serialization.Serializable
5+
6+ @Serializable
7+ data class RegisterEmotionRequest (
8+ @SerialName(" emotionMarbleType" )
9+ val emotionMarbleType : String
10+ )
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.model.response
2+
3+ import kotlinx.serialization.SerialName
4+ import kotlinx.serialization.Serializable
5+
6+ @Serializable
7+ data class GetEmotionsResponse (
8+ @SerialName(" emotionMarbleTypes" )
9+ val emotionMarbleTypes : List <String >
10+ )
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.data.emotion.model.response
2+
3+ import com.threegap.bitnagil.data.emotion.model.dto.EmotionRecommendedRoutineDto
4+ import kotlinx.serialization.SerialName
5+ import kotlinx.serialization.Serializable
6+
7+ @Serializable
8+ data class RegisterEmotionResponse (
9+ @SerialName(" recommendedRoutines" )
10+ val recommendedRoutines : List <EmotionRecommendedRoutineDto >
11+ )
You can’t perform that action at this time.
0 commit comments