Skip to content

Commit c6f8640

Browse files
committed
Feat: 루틴 삭제 기능 구현
- 루틴 삭제 UseCase 추가 - RoutineRepository에 deleteRoutine 메서드 추가 - RoutineRemoteDataSource에 deleteRoutine 메서드 추가 - RoutineService에 deleteRoutine API 연동
1 parent 10658cd commit c6f8640

6 files changed

Lines changed: 29 additions & 0 deletions

File tree

data/src/main/java/com/threegap/bitnagil/data/routine/datasource/RoutineRemoteDataSource.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ import com.threegap.bitnagil.domain.routine.model.RoutineCompletion
77
interface RoutineRemoteDataSource {
88
suspend fun fetchWeeklyRoutines(startDate: String, endDate: String): Result<RoutinesResponseDto>
99
suspend fun syncRoutineCompletion(routineCompletionRequestDto: RoutineCompletionRequestDto): Result<Unit>
10+
suspend fun deleteRoutine(routineId: String): Result<Unit>
1011
}

data/src/main/java/com/threegap/bitnagil/data/routine/datasourceImpl/RoutineRemoteDataSourceImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,9 @@ class RoutineRemoteDataSourceImpl @Inject constructor(
2020
safeUnitApiCall {
2121
routineService.routineCompletion(routineCompletionRequestDto)
2222
}
23+
24+
override suspend fun deleteRoutine(routineId: String): Result<Unit> =
25+
safeUnitApiCall {
26+
routineService.deleteRoutine(routineId)
27+
}
2328
}

data/src/main/java/com/threegap/bitnagil/data/routine/repositoryImpl/RoutineRepositoryImpl.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@ class RoutineRepositoryImpl @Inject constructor(
1717

1818
override suspend fun syncRoutineCompletion(routineCompletion: RoutineCompletion): Result<Unit> =
1919
routineRemoteDataSource.syncRoutineCompletion(routineCompletion.toDto())
20+
21+
override suspend fun deleteRoutine(routineId: String): Result<Unit> =
22+
routineRemoteDataSource.deleteRoutine(routineId)
2023
}

data/src/main/java/com/threegap/bitnagil/data/routine/service/RoutineService.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest
44
import com.threegap.bitnagil.data.routine.model.response.RoutinesResponseDto
55
import com.threegap.bitnagil.network.model.BaseResponse
66
import retrofit2.http.Body
7+
import retrofit2.http.DELETE
78
import retrofit2.http.GET
89
import retrofit2.http.POST
10+
import retrofit2.http.Path
911
import retrofit2.http.Query
1012

1113
interface RoutineService {
@@ -19,4 +21,9 @@ interface RoutineService {
1921
suspend fun routineCompletion(
2022
@Body request: RoutineCompletionRequestDto
2123
): BaseResponse<Unit>
24+
25+
@DELETE("/api/v1/routines/{routineId}")
26+
suspend fun deleteRoutine(
27+
@Path("routineId") routineId: String
28+
): BaseResponse<Unit>
2229
}

domain/src/main/java/com/threegap/bitnagil/domain/routine/repository/RoutineRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ import com.threegap.bitnagil.domain.routine.model.Routines
66
interface RoutineRepository {
77
suspend fun fetchWeeklyRoutines(startDate: String, endDate: String): Result<Routines>
88
suspend fun syncRoutineCompletion(routineCompletion: RoutineCompletion): Result<Unit>
9+
suspend fun deleteRoutine(routineId: String): Result<Unit>
910
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.threegap.bitnagil.domain.routine.usecase
2+
3+
import com.threegap.bitnagil.domain.routine.repository.RoutineRepository
4+
import javax.inject.Inject
5+
6+
class DeleteRoutineUseCase @Inject constructor(
7+
private val routineRepository: RoutineRepository
8+
) {
9+
suspend operator fun invoke(routineId: String): Result<Unit> {
10+
return routineRepository.deleteRoutine(routineId)
11+
}
12+
}

0 commit comments

Comments
 (0)