Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ import com.threegap.bitnagil.data.user.datasource.UserDataSource
import com.threegap.bitnagil.data.user.datasourceImpl.UserDataSourceImpl
import com.threegap.bitnagil.data.version.datasource.VersionDataSource
import com.threegap.bitnagil.data.version.datasourceImpl.VersionDataSourceImpl
import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource
import com.threegap.bitnagil.data.writeroutine.datasourceImpl.WriteRoutineDataSourceImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
Expand Down Expand Up @@ -56,10 +54,6 @@ abstract class DataSourceModule {
@Singleton
abstract fun bindEmotionDataSource(emotionDataSourceImpl: EmotionDataSourceImpl): EmotionDataSource

@Binds
@Singleton
abstract fun bindWriteRoutineDataSource(writeRoutineDataSourceImpl: WriteRoutineDataSourceImpl): WriteRoutineDataSource

@Binds
@Singleton
abstract fun bindUserDataSource(userDataSourceImpl: UserDataSourceImpl): UserDataSource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import com.threegap.bitnagil.data.report.repositoryImpl.ReportRepositoryImpl
import com.threegap.bitnagil.data.routine.repositoryImpl.RoutineRepositoryImpl
import com.threegap.bitnagil.data.user.repositoryImpl.UserRepositoryImpl
import com.threegap.bitnagil.data.version.repositoryImpl.VersionRepositoryImpl
import com.threegap.bitnagil.data.writeroutine.repositoryImpl.WriteRoutineRepositoryImpl
import com.threegap.bitnagil.domain.address.repository.AddressRepository
import com.threegap.bitnagil.domain.auth.repository.AuthRepository
import com.threegap.bitnagil.domain.emotion.repository.EmotionRepository
Expand All @@ -21,7 +20,6 @@ import com.threegap.bitnagil.domain.report.repository.ReportRepository
import com.threegap.bitnagil.domain.routine.repository.RoutineRepository
import com.threegap.bitnagil.domain.user.repository.UserRepository
import com.threegap.bitnagil.domain.version.repository.VersionRepository
import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
Expand All @@ -48,10 +46,6 @@ abstract class RepositoryModule {
@Singleton
abstract fun bindEmotionRepository(emotionRepositoryImpl: EmotionRepositoryImpl): EmotionRepository

@Binds
@Singleton
abstract fun bindWriteRoutineRepository(writeRoutineRepositoryImpl: WriteRoutineRepositoryImpl): WriteRoutineRepository

@Binds
@Singleton
abstract fun bindUserRepository(userRepositoryImpl: UserRepositoryImpl): UserRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import com.threegap.bitnagil.data.report.service.ReportService
import com.threegap.bitnagil.data.routine.service.RoutineService
import com.threegap.bitnagil.data.user.service.UserService
import com.threegap.bitnagil.data.version.service.VersionService
import com.threegap.bitnagil.data.writeroutine.service.WriteRoutineService
import com.threegap.bitnagil.network.Auth
import com.threegap.bitnagil.network.Kakao
import com.threegap.bitnagil.network.NoneAuth
Expand Down Expand Up @@ -46,11 +45,6 @@ object ServiceModule {
fun providerEmotionService(@Auth retrofit: Retrofit): EmotionService =
retrofit.create(EmotionService::class.java)

@Provides
@Singleton
fun providerWriteRoutineService(@Auth retrofit: Retrofit): WriteRoutineService =
retrofit.create(WriteRoutineService::class.java)

@Provides
@Singleton
fun provideReissueService(@NoneAuth retrofit: Retrofit): ReissueService =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.threegap.bitnagil.data.routine.datasource

import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest
import com.threegap.bitnagil.data.routine.model.response.RoutineResponse
import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse

Expand All @@ -10,4 +12,6 @@ interface RoutineRemoteDataSource {
suspend fun getRoutine(routineId: String): Result<RoutineResponse>
suspend fun deleteRoutine(routineId: String): Result<Unit>
suspend fun deleteRoutineForDay(routineId: String): Result<Unit>
suspend fun registerRoutine(request: RoutineRegisterRequest): Result<Unit>
suspend fun editRoutine(request: RoutineEditRequest): Result<Unit>
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import com.threegap.bitnagil.data.common.safeApiCall
import com.threegap.bitnagil.data.common.safeUnitApiCall
import com.threegap.bitnagil.data.routine.datasource.RoutineRemoteDataSource
import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest
import com.threegap.bitnagil.data.routine.model.response.RoutineResponse
import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse
import com.threegap.bitnagil.data.routine.service.RoutineService
Expand Down Expand Up @@ -36,4 +38,14 @@ class RoutineRemoteDataSourceImpl @Inject constructor(
safeUnitApiCall {
routineService.deleteRoutineForDay(routineId)
}

override suspend fun registerRoutine(request: RoutineRegisterRequest): Result<Unit> =
safeUnitApiCall {
routineService.postRoutine(request)
}

override suspend fun editRoutine(request: RoutineEditRequest): Result<Unit> =
safeUnitApiCall {
routineService.patchRoutine(request)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.threegap.bitnagil.data.routine.model.request

import com.threegap.bitnagil.domain.routine.model.DayOfWeek
import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo
import com.threegap.bitnagil.domain.routine.model.RoutineUpdateType
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RoutineEditRequest(
@SerialName("routineId")
val routineId: String,
@SerialName("updateApplyDate")
val updateApplyDate: RoutineUpdateType,
@SerialName("routineName")
val routineName: String,
@SerialName("repeatDay")
val repeatDay: List<DayOfWeek>,
@SerialName("routineStartDate")
val routineStartDate: String,
@SerialName("routineEndDate")
val routineEndDate: String,
@SerialName("executionTime")
val executionTime: String,
@SerialName("subRoutineName")
val subRoutineName: List<String>,
)

fun RoutineEditInfo.toDto(): RoutineEditRequest {
return RoutineEditRequest(
routineId = this.id,
updateApplyDate = this.updateType,
routineName = this.name,
repeatDay = this.repeatDay,
routineStartDate = this.startDate.toString(),
routineEndDate = this.endDate.toString(),
executionTime = this.startTime.toString(),
subRoutineName = this.subRoutines,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.threegap.bitnagil.data.routine.model.request

import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory
import com.threegap.bitnagil.domain.routine.model.DayOfWeek
import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RoutineRegisterRequest(
@SerialName("routineName")
val routineName: String,
@SerialName("repeatDay")
val repeatDay: List<DayOfWeek>,
@SerialName("routineStartDate")
val routineStartDate: String,
@SerialName("routineEndDate")
val routineEndDate: String,
@SerialName("executionTime")
val executionTime: String,
@SerialName("subRoutineName")
val subRoutineName: List<String>,
@SerialName("recommendedRoutineType")
val recommendedRoutineType: RecommendCategory?,
)

fun RoutineRegisterInfo.toDto(): RoutineRegisterRequest {
return RoutineRegisterRequest(
routineName = this.name,
repeatDay = this.repeatDay,
routineStartDate = this.startDate.toString(),
routineEndDate = this.endDate.toString(),
executionTime = this.startTime.toString(),
subRoutineName = this.subRoutines,
recommendedRoutineType = this.recommendedRoutineType,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@ import com.threegap.bitnagil.data.routine.model.request.toDto
import com.threegap.bitnagil.data.routine.model.response.toDomain
import com.threegap.bitnagil.domain.routine.model.Routine
import com.threegap.bitnagil.domain.routine.model.RoutineCompletionInfos
import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo
import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo
import com.threegap.bitnagil.domain.routine.model.RoutineSchedule
import com.threegap.bitnagil.domain.routine.model.WriteRoutineEvent
import com.threegap.bitnagil.domain.routine.repository.RoutineRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.asSharedFlow
import javax.inject.Inject

class RoutineRepositoryImpl @Inject constructor(
Expand All @@ -27,4 +33,25 @@ class RoutineRepositoryImpl @Inject constructor(

override suspend fun deleteRoutineForDay(routineId: String): Result<Unit> =
routineRemoteDataSource.deleteRoutineForDay(routineId)

override suspend fun registerRoutine(routineRegisterInfo: RoutineRegisterInfo): Result<Unit> {
val request = routineRegisterInfo.toDto()
return routineRemoteDataSource.registerRoutine(request).also {
if (it.isSuccess) {
_writeRoutineEventFlow.emit(WriteRoutineEvent.AddRoutine)
}
}
}

override suspend fun editRoutine(routineEditInfo: RoutineEditInfo): Result<Unit> {
val request = routineEditInfo.toDto()
return routineRemoteDataSource.editRoutine(request).also {
if (it.isSuccess) {
_writeRoutineEventFlow.emit(WriteRoutineEvent.EditRoutine(routineEditInfo.id))
}
}
}

private val _writeRoutineEventFlow = MutableSharedFlow<WriteRoutineEvent>()
override suspend fun getWriteRoutineEventFlow(): Flow<WriteRoutineEvent> = _writeRoutineEventFlow.asSharedFlow()
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package com.threegap.bitnagil.data.routine.service

import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest
import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest
import com.threegap.bitnagil.data.routine.model.response.RoutineResponse
import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse
import com.threegap.bitnagil.network.model.BaseResponse
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.PATCH
import retrofit2.http.POST
import retrofit2.http.PUT
import retrofit2.http.Path
import retrofit2.http.Query
Expand Down Expand Up @@ -37,4 +41,14 @@ interface RoutineService {
suspend fun deleteRoutineForDay(
@Path("routineId") routineId: String,
): BaseResponse<Unit>

@POST("/api/v2/routines")
suspend fun postRoutine(
@Body routineRegisterRequest: RoutineRegisterRequest,
): BaseResponse<Unit>

@PATCH("/api/v2/routines")
suspend fun patchRoutine(
@Body routineEditRequest: RoutineEditRequest,
): BaseResponse<Unit>
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading