Skip to content

Commit db6473b

Browse files
authored
Merge pull request #157 from SOLPLY/feature/#156-firsr-qa
[Feature/#156] QA2 반영 및 api변경사항 관련 수정
2 parents 6313090 + 8ded000 commit db6473b

16 files changed

Lines changed: 170 additions & 71 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="28dp"
3+
android:height="28dp"
4+
android:viewportWidth="28"
5+
android:viewportHeight="28">
6+
<path
7+
android:pathData="M23.6,14.227C23.6,13.518 23.536,12.836 23.418,12.182H14V16.05H19.382C19.15,17.3 18.445,18.359 17.386,19.068V21.577H20.618C22.509,19.836 23.6,17.273 23.6,14.227Z"
8+
android:fillColor="#4285F4"
9+
android:fillType="evenOdd"/>
10+
<path
11+
android:pathData="M14,24C16.7,24 18.963,23.104 20.618,21.577L17.386,19.068C16.491,19.668 15.345,20.023 14,20.023C11.395,20.023 9.191,18.264 8.404,15.9H5.063V18.491C6.709,21.759 10.091,24 14,24Z"
12+
android:fillColor="#34A853"
13+
android:fillType="evenOdd"/>
14+
<path
15+
android:pathData="M8.405,15.9C8.205,15.3 8.091,14.659 8.091,14C8.091,13.341 8.205,12.7 8.405,12.1V9.509H5.064C4.386,10.859 4,12.386 4,14C4,15.614 4.386,17.141 5.064,18.491L8.405,15.9Z"
16+
android:fillColor="#FBBC05"
17+
android:fillType="evenOdd"/>
18+
<path
19+
android:pathData="M14,7.977C15.468,7.977 16.786,8.482 17.823,9.473L20.691,6.605C18.959,4.991 16.695,4 14,4C10.091,4 6.709,6.241 5.063,9.509L8.404,12.1C9.191,9.736 11.395,7.977 14,7.977Z"
20+
android:fillColor="#EA4335"
21+
android:fillType="evenOdd"/>
22+
</vector>

data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PatchUserInfoRequestDto.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ data class PatchUserInfoRequestDto(
88
@SerialName("selectedTownId")
99
val selectedTownId: Long,
1010

11-
@SerialName("favoriteTownIdList")
12-
val favoriteTownIdList: List<Long>,
13-
1411
@SerialName("persona")
1512
val persona: String,
1613

1714
@SerialName("nickname")
18-
val nickname: String
15+
val nickname: String,
16+
17+
@SerialName("policyAgreementInfos")
18+
val policyAgreementInfos: List<PolicyAgreementInfoDto>
1919
)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.teamsolply.solply.onboarding.dto.request
2+
3+
import kotlinx.serialization.SerialName
4+
import kotlinx.serialization.Serializable
5+
6+
@Serializable
7+
data class PolicyAgreementInfoDto(
8+
@SerialName("policyId")
9+
val policyId: Long,
10+
11+
@SerialName("isAgree")
12+
val isAgree: Boolean
13+
)

data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ data class TownDto(
1515
val townId: Long,
1616
@SerialName("townName")
1717
val townName: String,
18+
@SerialName("parentTownId")
19+
val parentTownId: Long? = null,
1820
@SerialName("subTowns")
1921
val subTowns: List<TownDto>? = null
2022
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.teamsolply.solply.onboarding.mapper
2+
3+
import com.teamsolply.solply.onboarding.dto.request.PolicyAgreementInfoDto
4+
import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity
5+
6+
fun PolicyAgreementInfoEntity.toDto(): PolicyAgreementInfoDto =
7+
PolicyAgreementInfoDto(
8+
policyId = this.policyId,
9+
isAgree = this.isAgree
10+
)

data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,44 @@ package com.teamsolply.solply.onboarding.mapper
22

33
import com.teamsolply.solply.onboarding.dto.response.GetAllTownResponseDto
44
import com.teamsolply.solply.onboarding.dto.response.TownDto
5+
import com.teamsolply.solply.onboarding.model.ParentTownEntity
56
import com.teamsolply.solply.onboarding.model.SubTownEntity
67
import com.teamsolply.solply.onboarding.model.TownEntity
78

89
fun GetAllTownResponseDto.toEntity(): TownEntity {
10+
val parentTowns = towns.filter { it.parentTownId == null }
11+
12+
val grouped = parentTowns.map { parent ->
13+
ParentTownEntity(
14+
townId = parent.townId,
15+
townName = parent.townName,
16+
subTowns = towns
17+
.filter { it.parentTownId == parent.townId }
18+
.map { dto ->
19+
SubTownEntity(
20+
townId = dto.townId,
21+
townName = dto.townName
22+
)
23+
}
24+
)
25+
}
26+
927
return TownEntity(
10-
towns = towns.map { it.toSubEntity() }
28+
parentTowns = grouped
29+
)
30+
}
31+
32+
fun TownDto.toParentEntity(): ParentTownEntity {
33+
return ParentTownEntity(
34+
townId = townId,
35+
townName = townName,
36+
subTowns = subTowns?.map { it.toSubEntity() } ?: emptyList()
1137
)
1238
}
1339

1440
fun TownDto.toSubEntity(): SubTownEntity {
1541
return SubTownEntity(
16-
townId = this.townId,
17-
townName = this.townName,
18-
subTowns = this.subTowns?.map { it.toSubEntity() }
42+
townId = townId,
43+
townName = townName
1944
)
2045
}

data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.teamsolply.solply.onboarding.repository
22

33
import com.teamsolply.solply.onboarding.dto.request.PatchUserInfoRequestDto
4+
import com.teamsolply.solply.onboarding.mapper.toDto
45
import com.teamsolply.solply.onboarding.mapper.toEntity
56
import com.teamsolply.solply.onboarding.model.PersonaEntity
7+
import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity
68
import com.teamsolply.solply.onboarding.model.TownEntity
79
import com.teamsolply.solply.onboarding.model.UserInfoEntity
810
import com.teamsolply.solply.onboarding.source.remote.OnBoardingRemoteDataSource
@@ -29,16 +31,16 @@ class OnBoardingRepositoryImpl @Inject constructor(
2931

3032
override suspend fun patchUserInfo(
3133
selectedTownId: Long,
32-
favoriteTownIdList: List<Long>,
3334
persona: String,
34-
nickname: String
35+
nickname: String,
36+
policyAgreementInfos: List<PolicyAgreementInfoEntity>
3537
): Result<UserInfoEntity> = runCatching {
3638
onBoardingRemoteDataSource.patchUserInfo(
3739
PatchUserInfoRequestDto(
3840
selectedTownId = selectedTownId,
39-
favoriteTownIdList = favoriteTownIdList,
4041
persona = persona,
41-
nickname = nickname
42+
nickname = nickname,
43+
policyAgreementInfos = policyAgreementInfos.map { it.toDto() }
4244
)
4345
)
4446
}.mapCatching {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.teamsolply.solply.onboarding.model
2+
3+
data class PolicyAgreementInfoEntity(
4+
val policyId: Long,
5+
val isAgree: Boolean
6+
)
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package com.teamsolply.solply.onboarding.model
22

33
data class TownEntity(
4-
val towns: List<SubTownEntity>
4+
val parentTowns: List<ParentTownEntity>
55
)
66

7-
data class SubTownEntity(
7+
data class ParentTownEntity(
88
val townId: Long,
99
val townName: String,
10-
val subTowns: List<SubTownEntity>? = null
10+
val subTowns: List<SubTownEntity>
11+
)
12+
13+
data class SubTownEntity(
14+
val townId: Long,
15+
val townName: String
1116
)
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.teamsolply.solply.onboarding.repository
22

33
import com.teamsolply.solply.onboarding.model.PersonaEntity
4+
import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity
45
import com.teamsolply.solply.onboarding.model.TownEntity
56
import com.teamsolply.solply.onboarding.model.UserInfoEntity
67

@@ -10,8 +11,8 @@ interface OnBoardingRepository {
1011
suspend fun checkNicknameDuplicate(nickname: String): Result<Boolean>
1112
suspend fun patchUserInfo(
1213
selectedTownId: Long,
13-
favoriteTownIdList: List<Long>,
1414
persona: String,
15-
nickname: String
15+
nickname: String,
16+
policyAgreementInfos: List<PolicyAgreementInfoEntity>
1617
): Result<UserInfoEntity>
1718
}

0 commit comments

Comments
 (0)