Skip to content

Commit 1cc90db

Browse files
committed
FIX: 루틴 작성시 누락된 추천 루틴 타입 변수 추가, 빠르게 "등록하기"를 2번 누를 경우 동일한 루틴이 2번 중첩되어 등록되는 문제 수정
1 parent 7e67356 commit 1cc90db

File tree

7 files changed

+18
-4
lines changed

7 files changed

+18
-4
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ data class RegisterRoutineRequest(
1717
val executionTime: String,
1818
@SerialName("subRoutineName")
1919
val subRoutineName: List<String>,
20+
@SerialName("recommendedRoutineType")
21+
val recommendedRoutineType: String?,
2022
)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class WriteRoutineRepositoryImpl @Inject constructor(
2424
startDate: Date,
2525
endDate: Date,
2626
subRoutines: List<String>,
27+
recommendedRoutineType: String?,
2728
): Result<Unit> {
2829
val request = RegisterRoutineRequest(
2930
routineName = name,
@@ -32,6 +33,7 @@ class WriteRoutineRepositoryImpl @Inject constructor(
3233
routineStartDate = startDate.toFormattedString(),
3334
routineEndDate = endDate.toFormattedString(),
3435
subRoutineName = subRoutines,
36+
recommendedRoutineType = recommendedRoutineType,
3537
)
3638
return writeRoutineDataSource.registerRoutine(request).also {
3739
if (it.isSuccess) {

domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/repository/WriteRoutineRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ interface WriteRoutineRepository {
1515
startDate: Date,
1616
endDate: Date,
1717
subRoutines: List<String>,
18+
recommendedRoutineType: String?,
1819
): Result<Unit>
1920

2021
suspend fun editRoutine(

domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/RegisterRoutineUseCase.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class RegisterRoutineUseCase @Inject constructor(
1616
startDate: Date,
1717
endDate: Date,
1818
subRoutines: List<String>,
19+
recommendedRoutineType: String?,
1920
): Result<Unit> {
2021
return writeRoutineRepository.registerRoutine(
2122
name = name,
@@ -24,6 +25,7 @@ class RegisterRoutineUseCase @Inject constructor(
2425
startDate = startDate,
2526
endDate = endDate,
2627
subRoutines = subRoutines,
28+
recommendedRoutineType = recommendedRoutineType,
2729
)
2830
}
2931
}

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/WriteRoutineViewModel.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
9393
),
9494
startDate = Date.fromString(routine.startDate),
9595
endDate = Date.fromString(routine.endDate),
96+
recommendedRoutineType = null,
9697
),
9798
)
9899
},
@@ -121,6 +122,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
121122
),
122123
startDate = Date.now(),
123124
endDate = Date.now(),
125+
recommendedRoutineType = routine.recommendedRoutineType.categoryName,
124126
),
125127
)
126128
},
@@ -134,7 +136,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
134136
override suspend fun SimpleSyntax<WriteRoutineState, WriteRoutineSideEffect>.reduceState(
135137
intent: WriteRoutineIntent,
136138
state: WriteRoutineState,
137-
): WriteRoutineState {
139+
): WriteRoutineState? {
138140
when (intent) {
139141
WriteRoutineIntent.SelectAllTime -> {
140142
return state.copy(
@@ -221,9 +223,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
221223
WriteRoutineIntent.RegisterRoutineSuccess -> {
222224
sendSideEffect(WriteRoutineSideEffect.MoveToPreviousScreen)
223225

224-
return state.copy(
225-
loading = false,
226-
)
226+
return null
227227
}
228228
WriteRoutineIntent.RegisterRoutineLoading -> {
229229
return state.copy(
@@ -254,6 +254,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
254254
endDate = intent.endDate,
255255
subRoutineNames = intent.subRoutines,
256256
loading = false,
257+
recommendedRoutineType = intent.recommendedRoutineType,
257258
)
258259
}
259260

@@ -449,6 +450,8 @@ class WriteRoutineViewModel @AssistedInject constructor(
449450
viewModelScope.launch {
450451
val currentState = stateFlow.value
451452

453+
if (currentState.loading) return@launch
454+
452455
val startTime = currentState.startTime ?: return@launch
453456

454457
val repeatDay = when (currentState.repeatType) {
@@ -483,6 +486,7 @@ class WriteRoutineViewModel @AssistedInject constructor(
483486
startDate = if (noRepeatRoutine) Date.now().toDomainDate() else currentState.startDate.toDomainDate(),
484487
endDate = if (noRepeatRoutine) Date.now().toDomainDate() else currentState.endDate.toDomainDate(),
485488
subRoutines = subRoutines,
489+
recommendedRoutineType = currentState.recommendedRoutineType,
486490
)
487491

488492
if (registerRoutineResult.isSuccess) {

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/model/mvi/WriteRoutineIntent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ sealed class WriteRoutineIntent : MviIntent {
2222
val subRoutines: List<String>,
2323
val startDate: Date,
2424
val endDate: Date,
25+
val recommendedRoutineType: String?,
2526
) : WriteRoutineIntent()
2627
data object SelectAllTime : WriteRoutineIntent()
2728
data object ShowTimePickerBottomSheet : WriteRoutineIntent()

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/model/mvi/WriteRoutineState.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ data class WriteRoutineState(
2929
val repeatDaysUiExpanded: Boolean,
3030
val periodUiExpanded: Boolean,
3131
val startTimeUiExpanded: Boolean,
32+
val recommendedRoutineType: String?,
3233
) : MviState {
3334
companion object {
3435
val Init = WriteRoutineState(
@@ -79,6 +80,7 @@ data class WriteRoutineState(
7980
startTimeUiExpanded = false,
8081
startDate = Date.now(),
8182
endDate = Date.now(),
83+
recommendedRoutineType = null,
8284
)
8385
}
8486

0 commit comments

Comments
 (0)