Skip to content

Commit 34bf5e4

Browse files
authored
Merge pull request #172 from YAPP-Github/refactor/#171-enum-mapper
[Refactor/#171] 수동 Enum 매핑 로직을 제거하고 kotlinx.serialization에 위임합니다.
2 parents 5253df1 + da22a5f commit 34bf5e4

File tree

31 files changed

+201
-249
lines changed

31 files changed

+201
-249
lines changed

data/src/main/java/com/threegap/bitnagil/data/auth/mapper/AuthMapper.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@ import com.threegap.bitnagil.data.auth.model.request.TermsAgreementRequestDto
44
import com.threegap.bitnagil.data.auth.model.response.LoginResponseDto
55
import com.threegap.bitnagil.domain.auth.model.AuthSession
66
import com.threegap.bitnagil.domain.auth.model.TermsAgreement
7-
import com.threegap.bitnagil.domain.auth.model.UserRole
87

98
// toDomain
109
internal fun LoginResponseDto.toDomain() =
1110
AuthSession(
1211
accessToken = this.accessToken,
1312
refreshToken = this.refreshToken,
14-
role = UserRole.fromString(this.role),
13+
role = this.role,
1514
)
1615

1716
// toDto

data/src/main/java/com/threegap/bitnagil/data/auth/model/response/LoginResponseDto.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.threegap.bitnagil.data.auth.model.response
22

3+
import com.threegap.bitnagil.domain.auth.model.UserRole
34
import kotlinx.serialization.SerialName
45
import kotlinx.serialization.Serializable
56

@@ -10,5 +11,5 @@ data class LoginResponseDto(
1011
@SerialName("refreshToken")
1112
val refreshToken: String,
1213
@SerialName("role")
13-
val role: String,
14+
val role: UserRole,
1415
)

data/src/main/java/com/threegap/bitnagil/data/recommendroutine/model/response/RecommendRoutinesDto.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import kotlinx.serialization.Serializable
99
@Serializable
1010
data class RecommendRoutinesDto(
1111
@SerialName("recommendedRoutines")
12-
val recommendedRoutinesByCategory: Map<String, List<RecommendedRoutineDto>>,
12+
val recommendedRoutinesByCategory: Map<RecommendCategory, List<RecommendedRoutineDto>>,
1313
@SerialName("emotionMarbleType")
14-
val emotionMarbleType: String?,
14+
val emotionMarbleType: EmotionMarbleType?,
1515
)
1616

1717
fun RecommendRoutinesDto.toDomain(): RecommendRoutines =
1818
RecommendRoutines(
19-
recommendRoutinesByCategory = this.recommendedRoutinesByCategory.map { (categoryString, routines) ->
20-
RecommendCategory.fromString(categoryString) to routines.map { it.toDomain() }
19+
recommendRoutinesByCategory = this.recommendedRoutinesByCategory.map { (category, routines) ->
20+
category to routines.map { it.toDomain() }
2121
}.toMap(),
22-
emotionMarbleType = this.emotionMarbleType?.let { EmotionMarbleType.valueOf(it) },
22+
emotionMarbleType = this.emotionMarbleType,
2323
)

data/src/main/java/com/threegap/bitnagil/data/recommendroutine/model/response/RecommendedRoutineDto.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ data class RecommendedRoutineDto(
1515
@SerialName("recommendedRoutineDescription")
1616
val recommendedRoutineDescription: String,
1717
@SerialName("recommendedRoutineLevel")
18-
val recommendedRoutineLevel: String,
18+
val recommendedRoutineLevel: RecommendLevel,
1919
@SerialName("executionTime")
2020
val executionTime: String,
2121
@SerialName("recommendedRoutineType")
22-
val recommendedRoutineType: String,
22+
val recommendedRoutineType: RecommendCategory,
2323
@SerialName("recommendedSubRoutineSearchResult")
2424
val recommendedSubRoutineSearchResult: List<RecommendedSubRoutineDto>,
2525
)
2626

2727
fun RecommendedRoutineDto.toDomain(): RecommendRoutine =
2828
RecommendRoutine(
29-
id = recommendedRoutineId,
30-
name = recommendedRoutineName,
31-
description = recommendedRoutineDescription,
32-
level = RecommendLevel.fromString(recommendedRoutineLevel),
33-
executionTime = executionTime,
34-
recommendedRoutineType = RecommendCategory.fromString(recommendedRoutineType),
35-
recommendSubRoutines = recommendedSubRoutineSearchResult.map { it.toDomain() },
29+
id = this.recommendedRoutineId,
30+
name = this.recommendedRoutineName,
31+
description = this.recommendedRoutineDescription,
32+
level = this.recommendedRoutineLevel,
33+
executionTime = this.executionTime,
34+
recommendedRoutineType = this.recommendedRoutineType,
35+
recommendSubRoutines = this.recommendedSubRoutineSearchResult.map { it.toDomain() },
3636
)

data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineByDayDeletionRequestDto.kt

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

data/src/main/java/com/threegap/bitnagil/data/routine/model/response/RoutineDto.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ data class RoutineDto(
1313
@SerialName("routineName")
1414
val routineName: String,
1515
@SerialName("repeatDay")
16-
val repeatDay: List<String>,
16+
val repeatDay: List<DayOfWeek>,
1717
@SerialName("executionTime")
1818
val executionTime: String,
1919
@SerialName("routineDate")
@@ -25,7 +25,7 @@ data class RoutineDto(
2525
@SerialName("subRoutineCompleteYn")
2626
val subRoutineCompleteYn: List<Boolean>,
2727
@SerialName("recommendedRoutineType")
28-
val recommendedRoutineType: String?,
28+
val recommendedRoutineType: RecommendedRoutineType?,
2929
@SerialName("routineDeletedYn")
3030
val routineDeletedYn: Boolean,
3131
@SerialName("routineStartDate")
@@ -38,13 +38,13 @@ fun RoutineDto.toDomain(): Routine =
3838
Routine(
3939
id = this.routineId,
4040
name = this.routineName,
41-
repeatDays = this.repeatDay.map { DayOfWeek.fromString(it) },
41+
repeatDays = this.repeatDay,
4242
executionTime = this.executionTime,
4343
routineDate = this.routineDate,
4444
isCompleted = this.routineCompleteYn,
4545
subRoutineNames = this.subRoutineNames,
4646
subRoutineCompletionStates = this.subRoutineCompleteYn,
47-
recommendedRoutineType = RecommendedRoutineType.fromString(this.recommendedRoutineType),
47+
recommendedRoutineType = this.recommendedRoutineType,
4848
isDeleted = routineDeletedYn,
4949
startDate = this.routineStartDate,
5050
endDate = this.routineEndDate,

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.threegap.bitnagil.data.writeroutine.model.request
22

3+
import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay
4+
import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType
35
import kotlinx.serialization.SerialName
46
import kotlinx.serialization.Serializable
57

@@ -8,11 +10,11 @@ data class EditRoutineRequest(
810
@SerialName("routineId")
911
val routineId: String,
1012
@SerialName("updateApplyDate")
11-
val updateApplyDate: String,
13+
val updateApplyDate: RoutineUpdateType,
1214
@SerialName("routineName")
1315
val routineName: String,
1416
@SerialName("repeatDay")
15-
val repeatDay: List<String>,
17+
val repeatDay: List<RepeatDay>,
1618
@SerialName("routineStartDate")
1719
val routineStartDate: String,
1820
@SerialName("routineEndDate")

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.threegap.bitnagil.data.writeroutine.model.request
22

3+
import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay
34
import kotlinx.serialization.SerialName
45
import kotlinx.serialization.Serializable
56

@@ -8,7 +9,7 @@ data class RegisterRoutineRequest(
89
@SerialName("routineName")
910
val routineName: String,
1011
@SerialName("repeatDay")
11-
val repeatDay: List<String>,
12+
val repeatDay: List<RepeatDay>,
1213
@SerialName("routineStartDate")
1314
val routineStartDate: String,
1415
@SerialName("routineEndDate")

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class WriteRoutineRepositoryImpl @Inject constructor(
2828
): Result<Unit> {
2929
val request = RegisterRoutineRequest(
3030
routineName = name,
31-
repeatDay = repeatDay.map { it.fullName },
31+
repeatDay = repeatDay,
3232
executionTime = startTime.toString(),
3333
routineStartDate = startDate.toString(),
3434
routineEndDate = endDate.toString(),
@@ -54,9 +54,9 @@ class WriteRoutineRepositoryImpl @Inject constructor(
5454
): Result<Unit> {
5555
val request = EditRoutineRequest(
5656
routineId = routineId,
57-
updateApplyDate = routineUpdateType.value,
57+
updateApplyDate = routineUpdateType,
5858
routineName = name,
59-
repeatDay = repeatDay.map { it.fullName },
59+
repeatDay = repeatDay,
6060
executionTime = startTime.toString(),
6161
routineStartDate = startDate.toString(),
6262
routineEndDate = endDate.toString(),
Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,13 @@
11
package com.threegap.bitnagil.domain.auth.model
22

3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
36
enum class UserRole {
47
USER,
58
GUEST,
69
ONBOARDING,
710
WITHDRAWN,
811
UNKNOWN,
912
;
10-
11-
fun isGuest() = this == GUEST
12-
13-
companion object {
14-
fun fromString(value: String): UserRole =
15-
when (value) {
16-
"USER" -> USER
17-
"GUEST" -> GUEST
18-
"ONBOARDING" -> ONBOARDING
19-
"WITHDRAWN" -> WITHDRAWN
20-
else -> UNKNOWN
21-
}
22-
}
2313
}

0 commit comments

Comments
 (0)