Skip to content

Commit 46b315a

Browse files
committed
REFACTOR: 루틴 작성/수정 관련 API v2 반영
1 parent 03b1bd2 commit 46b315a

23 files changed

Lines changed: 111 additions & 366 deletions

File tree

app/src/main/java/com/threegap/bitnagil/MainNavHost.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ fun MainNavHost(
197197
val writeScreenNavArg = if (arg.isRegister) {
198198
WriteRoutineScreenArg.Add(baseRoutineId = arg.routineId)
199199
} else {
200-
WriteRoutineScreenArg.Edit(routineId = arg.routineId!!)
200+
WriteRoutineScreenArg.Edit(routineId = arg.routineId!!, updateRoutineFromNowDate = arg.isUpdateRoutineFromNowDate)
201201
}
202202

203203
val viewModel = hiltViewModel<WriteRoutineViewModel, WriteRoutineViewModel.Factory> { factory ->

app/src/main/java/com/threegap/bitnagil/Route.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ sealed interface Route {
3434
data class WriteRoutine(
3535
val routineId: String? = null,
3636
val isRegister: Boolean = true,
37+
val isUpdateRoutineFromNowDate: Boolean = true,
3738
) : Route
3839

3940
@Serializable

data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/dto/RoutineDto.kt

Lines changed: 0 additions & 51 deletions
This file was deleted.

data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/dto/SubRoutineDto.kt

Lines changed: 0 additions & 23 deletions
This file was deleted.

data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/dto/SubRoutineInfosDiffDto.kt

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package com.threegap.bitnagil.data.writeroutine.model.request
22

3-
import com.threegap.bitnagil.data.writeroutine.model.dto.SubRoutineInfosDiffDto
43
import kotlinx.serialization.SerialName
54
import kotlinx.serialization.Serializable
65

76
@Serializable
87
data class EditRoutineRequest(
98
@SerialName("routineId")
109
val routineId: String,
10+
@SerialName("updateApplyDate")
11+
val updateApplyDate: String,
1112
@SerialName("routineName")
1213
val routineName: String,
1314
@SerialName("repeatDay")
1415
val repeatDay: List<String>,
16+
@SerialName("routineStartDate")
17+
val routineStartDate: String?,
18+
@SerialName("routineEndDate")
19+
val routineEndDate: String?,
1520
@SerialName("executionTime")
1621
val executionTime: String,
17-
@SerialName("subRoutineInfos")
18-
val subRoutineInfos: List<SubRoutineInfosDiffDto>,
22+
@SerialName("subRoutineName")
23+
val subRoutineName: List<String>,
1924
)

data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/RegisterRoutineRequest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ data class RegisterRoutineRequest(
99
val routineName: String,
1010
@SerialName("repeatDay")
1111
val repeatDay: List<String>,
12+
@SerialName("routineStartDate")
13+
val routineStartDate: String?,
14+
@SerialName("routineEndDate")
15+
val routineEndDate: String?,
1216
@SerialName("executionTime")
1317
val executionTime: String,
1418
@SerialName("subRoutineName")

data/src/main/java/com/threegap/bitnagil/data/writeroutine/repositoryImpl/WriteRoutineRepositoryImpl.kt

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.threegap.bitnagil.data.writeroutine.repositoryImpl
22

33
import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource
4-
import com.threegap.bitnagil.data.writeroutine.model.dto.SubRoutineInfosDiffDto
54
import com.threegap.bitnagil.data.writeroutine.model.request.EditRoutineRequest
65
import com.threegap.bitnagil.data.writeroutine.model.request.RegisterRoutineRequest
6+
import com.threegap.bitnagil.domain.writeroutine.model.Date
77
import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay
8-
import com.threegap.bitnagil.domain.writeroutine.model.SubRoutineDiff
8+
import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType
99
import com.threegap.bitnagil.domain.writeroutine.model.Time
1010
import com.threegap.bitnagil.domain.writeroutine.model.WriteRoutineEvent
1111
import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository
@@ -17,11 +17,20 @@ import javax.inject.Inject
1717
class WriteRoutineRepositoryImpl @Inject constructor(
1818
private val writeRoutineDataSource: WriteRoutineDataSource,
1919
) : WriteRoutineRepository {
20-
override suspend fun registerRoutine(name: String, repeatDay: List<RepeatDay>, startTime: Time, subRoutines: List<String>): Result<Unit> {
20+
override suspend fun registerRoutine(
21+
name: String,
22+
repeatDay: List<RepeatDay>,
23+
startTime: Time,
24+
startDate: Date?,
25+
endDate: Date?,
26+
subRoutines: List<String>
27+
): Result<Unit> {
2128
val request = RegisterRoutineRequest(
2229
routineName = name,
2330
repeatDay = repeatDay.map { it.fullName },
2431
executionTime = startTime.toFormattedString(),
32+
routineStartDate = startDate?.toFormattedString(),
33+
routineEndDate = endDate?.toFormattedString(),
2534
subRoutineName = subRoutines,
2635
)
2736
return writeRoutineDataSource.registerRoutine(request).also {
@@ -33,19 +42,23 @@ class WriteRoutineRepositoryImpl @Inject constructor(
3342

3443
override suspend fun editRoutine(
3544
routineId: String,
45+
routineUpdateType: RoutineUpdateType,
3646
name: String,
3747
repeatDay: List<RepeatDay>,
3848
startTime: Time,
39-
subRoutines: List<SubRoutineDiff>,
49+
startDate: Date?,
50+
endDate: Date?,
51+
subRoutines: List<String>,
4052
): Result<Unit> {
4153
val request = EditRoutineRequest(
4254
routineId = routineId,
55+
updateApplyDate = routineUpdateType.value,
4356
routineName = name,
4457
repeatDay = repeatDay.map { it.fullName },
4558
executionTime = startTime.toFormattedString(),
46-
subRoutineInfos = subRoutines.map {
47-
SubRoutineInfosDiffDto.fromSubRoutineDiff(it)
48-
},
59+
routineStartDate = startDate?.toFormattedString(),
60+
routineEndDate = endDate?.toFormattedString(),
61+
subRoutineName = subRoutines,
4962
)
5063

5164
return writeRoutineDataSource.editRoutine(request).also {

data/src/main/java/com/threegap/bitnagil/data/writeroutine/service/WriteRoutineService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ import retrofit2.http.PATCH
88
import retrofit2.http.POST
99

1010
interface WriteRoutineService {
11-
@POST("/api/v1/routines")
11+
@POST("/api/v2/routines")
1212
suspend fun postRoutine(
1313
@Body registerRoutineRequest: RegisterRoutineRequest,
1414
): BaseResponse<Unit>
1515

16-
@PATCH("/api/v1/routines")
16+
@PATCH("/api/v2/routines")
1717
suspend fun patchRoutine(
1818
@Body editRoutineRequest: EditRoutineRequest,
1919
): BaseResponse<Unit>

domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/Date.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ data class Date(
1010
require(month in 1..12) { "Month must be in range 1..12, but was $month" }
1111
require(day in 1..31) { "Day must be in range 1..31, but was $day" }
1212
}
13+
14+
fun toFormattedString(): String {
15+
return "%04d.%02d.%02d".format(year, month, day)
16+
}
1317
}

0 commit comments

Comments
 (0)