Skip to content

Commit 1283dc7

Browse files
authored
Merge pull request #347 from Runnect/feature/refactor-presentation-response
[Refactor] Presentation Layer에서 Response 사용 중인 부분 수정
2 parents 2f2fa5d + f16c18a commit 1283dc7

14 files changed

Lines changed: 80 additions & 109 deletions

File tree

app/src/main/java/com/runnect/runnect/data/dto/response/ResponsePostMyDrawCourse.kt

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,8 @@ import kotlinx.serialization.Serializable
55

66
@Serializable
77
data class ResponsePostMyDrawCourse(
8-
@SerialName("data")
9-
val data: Data
10-
) {
11-
@Serializable
12-
data class Data(
13-
@SerialName("id")
14-
val id: Int,
15-
@SerialName("createdAt")
16-
val createdAt: String
17-
)
18-
}
8+
@SerialName("id")
9+
val id: Int,
10+
@SerialName("createdAt")
11+
val createdAt: String
12+
)

app/src/main/java/com/runnect/runnect/data/repository/CourseRepositoryImpl.kt

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ import com.runnect.runnect.data.dto.request.RequestPostPublicCourse
66
import com.runnect.runnect.data.dto.request.RequestPostRunningHistory
77
import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse
88
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawDetail
9-
import com.runnect.runnect.data.dto.response.ResponsePostDiscoverUpload
10-
import com.runnect.runnect.data.dto.response.ResponsePostMyDrawCourse
11-
import com.runnect.runnect.data.dto.response.ResponsePostMyHistory
12-
import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse
139
import com.runnect.runnect.data.network.mapToFlowResult
1410
import com.runnect.runnect.data.source.remote.RemoteCourseDataSource
1511
import com.runnect.runnect.domain.entity.CourseDetail
@@ -25,8 +21,9 @@ import okhttp3.MultipartBody
2521
import okhttp3.RequestBody
2622
import javax.inject.Inject
2723

28-
class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSource: RemoteCourseDataSource) :
29-
CourseRepository {
24+
class CourseRepositoryImpl @Inject constructor(
25+
private val remoteCourseDataSource: RemoteCourseDataSource
26+
) : CourseRepository {
3027

3128
override suspend fun getMarathonCourse(): Flow<Result<List<MarathonCourse>>> {
3229
return remoteCourseDataSource.getMarathonCourse().mapToFlowResult {
@@ -66,8 +63,8 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
6663
return remoteCourseDataSource.getMyDrawDetail(courseId = courseId).mapToFlowResult { it }
6764
}
6865

69-
override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<ResponsePutMyDrawCourse>> {
70-
return remoteCourseDataSource.deleteMyDrawCourse(deleteCourseList = deleteCourseList).mapToFlowResult { it }
66+
override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<Unit>> {
67+
return remoteCourseDataSource.deleteMyDrawCourse(deleteCourseList = deleteCourseList).mapToFlowResult {}
7168
}
7269

7370
override suspend fun postCourseScrap(
@@ -78,8 +75,8 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
7875
}
7976
}
8077

81-
override suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): Flow<Result<ResponsePostDiscoverUpload>> {
82-
return remoteCourseDataSource.postUploadMyCourse(requestPostPublicCourse = requestPostPublicCourse).mapToFlowResult { it }
78+
override suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): Flow<Result<Unit>> {
79+
return remoteCourseDataSource.postUploadMyCourse(requestPostPublicCourse = requestPostPublicCourse).mapToFlowResult {}
8380
}
8481

8582
override suspend fun patchPublicCourse(
@@ -93,14 +90,16 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
9390
it.toEditableCourseDetail()
9491
}
9592

96-
override suspend fun postRecord(request: RequestPostRunningHistory): Flow<Result<ResponsePostMyHistory>> {
97-
return remoteCourseDataSource.postRecord(request = request).mapToFlowResult { it }
93+
override suspend fun postRecord(request: RequestPostRunningHistory): Flow<Result<Unit>> {
94+
return remoteCourseDataSource.postRecord(request = request).mapToFlowResult {}
9895
}
9996

10097
override suspend fun uploadCourse(
10198
image: MultipartBody.Part,
10299
data: RequestBody
103-
): Flow<Result<ResponsePostMyDrawCourse>> {
104-
return remoteCourseDataSource.uploadCourse(image = image, data = data).mapToFlowResult { it }
100+
): Flow<Result<Int>> {
101+
return remoteCourseDataSource.uploadCourse(image = image, data = data).mapToFlowResult {
102+
it.id
103+
}
105104
}
106105
}

app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.runnect.runnect.data.repository
22

33
import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse
4-
import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse
54
import com.runnect.runnect.data.dto.response.toMyDrawCourse
65
import com.runnect.runnect.data.network.mapToFlowResult
76
import com.runnect.runnect.data.source.remote.RemoteStorageDataSource
@@ -18,8 +17,8 @@ class StorageRepositoryImpl @Inject constructor(
1817
override suspend fun getMyDrawCourse(): Flow<Result<List<MyDrawCourse>>> =
1918
remoteStorageDataSource.getMyDrawCourse().mapToFlowResult { it.toMyDrawCourse() }
2019

21-
override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<ResponsePutMyDrawCourse>> {
22-
return remoteStorageDataSource.deleteMyDrawCourse(deleteCourseList = deleteCourseList).mapToFlowResult { it }
20+
override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<Unit>> {
21+
return remoteStorageDataSource.deleteMyDrawCourse(deleteCourseList = deleteCourseList).mapToFlowResult {}
2322
}
2423

2524
override suspend fun getMyScrapCourse(): Flow<Result<List<MyScrapCourse>>> =

app/src/main/java/com/runnect/runnect/data/repository/UserRepositoryImpl.kt

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
package com.runnect.runnect.data.repository
22

33
import com.runnect.runnect.data.dto.HistoryInfoDTO
4-
import com.runnect.runnect.domain.entity.UserProfile
54
import com.runnect.runnect.data.dto.request.RequestDeleteHistory
65
import com.runnect.runnect.data.dto.request.RequestDeleteUploadCourse
76
import com.runnect.runnect.data.dto.request.RequestPatchHistoryTitle
87
import com.runnect.runnect.data.dto.request.RequestPatchNickName
9-
import com.runnect.runnect.data.dto.response.ResponseDeleteHistory
10-
import com.runnect.runnect.data.dto.response.ResponseDeleteUploadCourse
11-
import com.runnect.runnect.data.dto.response.ResponseDeleteUser
12-
import com.runnect.runnect.data.dto.response.ResponsePatchHistoryTitle
13-
import com.runnect.runnect.data.dto.response.ResponsePatchUserNickName
148
import com.runnect.runnect.data.network.mapToFlowResult
159
import com.runnect.runnect.data.source.remote.RemoteUserDataSource
1610
import com.runnect.runnect.domain.entity.User
11+
import com.runnect.runnect.domain.entity.UserProfile
1712
import com.runnect.runnect.domain.entity.UserUploadCourse
1813
import com.runnect.runnect.domain.repository.UserRepository
1914
import kotlinx.coroutines.flow.Flow
2015
import javax.inject.Inject
2116

22-
class UserRepositoryImpl @Inject constructor(private val remoteUserDataSource: RemoteUserDataSource) :
23-
UserRepository {
17+
class UserRepositoryImpl @Inject constructor(
18+
private val remoteUserDataSource: RemoteUserDataSource
19+
) : UserRepository {
2420

2521
override suspend fun getUserInfo(): Flow<Result<User>> = remoteUserDataSource.getUserInfo()
2622
.mapToFlowResult { it.toUser() }
@@ -33,29 +29,31 @@ class UserRepositoryImpl @Inject constructor(private val remoteUserDataSource: R
3329

3430
override suspend fun putDeleteUploadCourse(
3531
requestDeleteUploadCourse: RequestDeleteUploadCourse
36-
): Flow<Result<ResponseDeleteUploadCourse>> {
37-
return remoteUserDataSource.putDeleteUploadCourse(requestDeleteUploadCourse).mapToFlowResult { it }
32+
): Flow<Result<Unit>> {
33+
return remoteUserDataSource.putDeleteUploadCourse(requestDeleteUploadCourse).mapToFlowResult {}
3834
}
3935

4036
override suspend fun putDeleteHistory(
4137
requestDeleteHistory: RequestDeleteHistory
42-
): Flow<Result<ResponseDeleteHistory>> {
43-
return remoteUserDataSource.putDeleteHistory(requestDeleteHistory).mapToFlowResult { it }
38+
): Flow<Result<Unit>> {
39+
return remoteUserDataSource.putDeleteHistory(requestDeleteHistory).mapToFlowResult {}
4440
}
4541

4642
override suspend fun patchHistoryTitle(
4743
historyId: Int, requestPatchHistoryTitle: RequestPatchHistoryTitle
48-
): Flow<Result<ResponsePatchHistoryTitle>> =
49-
remoteUserDataSource.patchHistoryTitle(historyId, requestPatchHistoryTitle).mapToFlowResult { it }
44+
): Flow<Result<String>> =
45+
remoteUserDataSource.patchHistoryTitle(historyId, requestPatchHistoryTitle).mapToFlowResult {
46+
it.record.title
47+
}
5048

51-
override suspend fun deleteUser(): Flow<Result<ResponseDeleteUser>> {
52-
return remoteUserDataSource.deleteUser().mapToFlowResult { it }
49+
override suspend fun deleteUser(): Flow<Result<Unit>> {
50+
return remoteUserDataSource.deleteUser().mapToFlowResult {}
5351
}
5452

5553
override suspend fun updateNickName(
5654
requestPatchNickName: RequestPatchNickName
57-
): Flow<Result<ResponsePatchUserNickName>> =
58-
remoteUserDataSource.updateNickName(requestPatchNickName).mapToFlowResult { it }
55+
): Flow<Result<Unit>> =
56+
remoteUserDataSource.updateNickName(requestPatchNickName).mapToFlowResult {}
5957

6058
override suspend fun getRecord(): Flow<Result<List<HistoryInfoDTO>>> {
6159
return remoteUserDataSource.getRecord().mapToFlowResult {

app/src/main/java/com/runnect/runnect/domain/repository/CourseRepository.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ import com.runnect.runnect.data.dto.request.RequestPostPublicCourse
66
import com.runnect.runnect.data.dto.request.RequestPostRunningHistory
77
import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse
88
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawDetail
9-
import com.runnect.runnect.data.dto.response.ResponsePostDiscoverUpload
10-
import com.runnect.runnect.data.dto.response.ResponsePostMyDrawCourse
11-
import com.runnect.runnect.data.dto.response.ResponsePostMyHistory
12-
import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse
139
import com.runnect.runnect.domain.entity.CourseDetail
1410
import com.runnect.runnect.domain.entity.DiscoverMultiViewItem.MarathonCourse
1511
import com.runnect.runnect.domain.entity.DiscoverSearchCourse
@@ -37,20 +33,20 @@ interface CourseRepository {
3733

3834
suspend fun getMyDrawDetail(courseId: Int): Flow<Result<ResponseGetMyDrawDetail>>
3935

40-
suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<ResponsePutMyDrawCourse>>
36+
suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Flow<Result<Unit>>
4137

4238
suspend fun postCourseScrap(requestPostCourseScrap: RequestPostCourseScrap): Flow<Result<PostScrap>>
4339

44-
suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): Flow<Result<ResponsePostDiscoverUpload>>
40+
suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): Flow<Result<Unit>>
4541

4642
suspend fun patchPublicCourse(
4743
publicCourseId: Int,
4844
requestPatchPublicCourse: RequestPatchPublicCourse
4945
): Flow<Result<EditableCourseDetail>>
5046

51-
suspend fun postRecord(request: RequestPostRunningHistory): Flow<Result<ResponsePostMyHistory>>
47+
suspend fun postRecord(request: RequestPostRunningHistory): Flow<Result<Unit>>
5248

5349
suspend fun uploadCourse(
5450
image: MultipartBody.Part, data: RequestBody
55-
): Flow<Result<ResponsePostMyDrawCourse>>
51+
): Flow<Result<Int>>
5652
}

app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ import kotlinx.coroutines.flow.Flow
99
interface StorageRepository {
1010
suspend fun getMyDrawCourse(): Flow<Result<List<MyDrawCourse>>>
1111
suspend fun getMyScrapCourse(): Flow<Result<List<MyScrapCourse>>>
12-
suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse) : Flow<Result<ResponsePutMyDrawCourse>>
12+
suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse) : Flow<Result<Unit>>
1313
}
Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
package com.runnect.runnect.domain.repository
22

33
import com.runnect.runnect.data.dto.HistoryInfoDTO
4-
import com.runnect.runnect.domain.entity.UserProfile
54
import com.runnect.runnect.data.dto.request.RequestDeleteHistory
65
import com.runnect.runnect.data.dto.request.RequestDeleteUploadCourse
76
import com.runnect.runnect.data.dto.request.RequestPatchHistoryTitle
87
import com.runnect.runnect.data.dto.request.RequestPatchNickName
9-
import com.runnect.runnect.data.dto.response.ResponseDeleteHistory
10-
import com.runnect.runnect.data.dto.response.ResponseDeleteUploadCourse
11-
import com.runnect.runnect.data.dto.response.ResponseDeleteUser
12-
import com.runnect.runnect.data.dto.response.ResponsePatchHistoryTitle
13-
import com.runnect.runnect.data.dto.response.ResponsePatchUserNickName
148
import com.runnect.runnect.domain.entity.User
9+
import com.runnect.runnect.domain.entity.UserProfile
1510
import com.runnect.runnect.domain.entity.UserUploadCourse
1611
import kotlinx.coroutines.flow.Flow
1712

@@ -22,11 +17,11 @@ interface UserRepository {
2217

2318
suspend fun putDeleteUploadCourse(
2419
requestDeleteUploadCourse: RequestDeleteUploadCourse
25-
): Flow<Result<ResponseDeleteUploadCourse>>
20+
): Flow<Result<Unit>>
2621

27-
suspend fun putDeleteHistory(requestDeleteHistory: RequestDeleteHistory): Flow<Result<ResponseDeleteHistory>>
22+
suspend fun putDeleteHistory(requestDeleteHistory: RequestDeleteHistory): Flow<Result<Unit>>
2823

29-
suspend fun deleteUser(): Flow<Result<ResponseDeleteUser>>
24+
suspend fun deleteUser(): Flow<Result<Unit>>
3025

3126
suspend fun getRecord(): Flow<Result<List<HistoryInfoDTO>>>
3227

@@ -35,11 +30,11 @@ interface UserRepository {
3530
suspend fun patchHistoryTitle(
3631
historyId: Int,
3732
requestPatchHistoryTitle: RequestPatchHistoryTitle
38-
): Flow<Result<ResponsePatchHistoryTitle>>
33+
): Flow<Result<String>>
3934

4035
suspend fun updateNickName(
4136
requestPatchNickName: RequestPatchNickName
42-
): Flow<Result<ResponsePatchUserNickName>>
37+
): Flow<Result<Unit>>
4338

4439
suspend fun getUserProfile(userId: Int): Flow<Result<UserProfile>>
4540
}

app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class CourseDetailViewModel @Inject constructor(
3535
val coursePatchState: LiveData<UiStateV2<EditableCourseDetail?>>
3636
get() = _coursePatchState
3737

38-
private val _courseDeleteState = MutableLiveData<UiStateV2<ResponseDeleteUploadCourse?>>()
39-
val courseDeleteState: LiveData<UiStateV2<ResponseDeleteUploadCourse?>>
38+
private val _courseDeleteState = MutableLiveData<UiStateV2<Unit>>()
39+
val courseDeleteState: LiveData<UiStateV2<Unit>>
4040
get() = _courseDeleteState
4141

4242
private val _courseScrapState = MutableLiveData<UiStateV2<PostScrap>>()

app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
162162

163163
binding.tvGuide.isVisible = false
164164
viewModel.searchResult.value = searchResult
165-
viewModel.departureName.value = searchResult.name
165+
viewModel.departureName = searchResult.name
166166

167167
setDepartureLatLng(
168168
latLng = LatLng(
@@ -515,11 +515,11 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
515515
if (isCustomLocationMode) departureLatLng = customDepartureLatLng
516516

517517
val courseData = CourseData(
518-
courseId = viewModel.uploadResult.value?.data?.id,
518+
courseId = viewModel.uploadCourseId,
519519
publicCourseId = null, //직접 생성하는 코스는 publicCourseId가 없지만 코스 발견 -> 러닝 등의 루트로 넘어올 시 기록 업로드에서 requestBody에 필요함
520520
touchList = touchList,
521521
startLatLng = departureLatLng,
522-
departure = viewModel.departureName.value,
522+
departure = viewModel.departureName,
523523
distance = viewModel.distanceSum.value,
524524
image = captureUri.toString(),
525525
dataFrom = "fromDrawCourse"
@@ -791,18 +791,18 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
791791
val uploadLatLngList: List<UploadLatLng> = distanceList.map { latLng ->
792792
UploadLatLng(latLng.latitude, latLng.longitude)
793793
}
794-
viewModel.path.value = uploadLatLngList
794+
viewModel.path = uploadLatLngList
795795

796796
when {
797797
isSearchLocationMode -> {
798-
viewModel.departureAddress.value = searchResult.fullAddress
799-
viewModel.departureName.value = searchResult.name
798+
viewModel.departureAddress = searchResult.fullAddress
799+
viewModel.departureName = searchResult.name
800800
}
801801

802802
isCurrentLocationMode || isCustomLocationMode -> {
803-
viewModel.departureAddress.value =
804-
viewModel.reverseGeocodingResult.value?.fullAddress
805-
viewModel.departureName.value =
803+
viewModel.departureAddress =
804+
viewModel.reverseGeocodingResult.value?.fullAddress ?: ""
805+
viewModel.departureName =
806806
viewModel.reverseGeocodingResult.value?.buildingName ?: "내가 설정한 출발지"
807807
}
808808
}

0 commit comments

Comments
 (0)