Skip to content

Commit bc6ddc6

Browse files
author
eshc123
committed
feat: getMissionHistories 추가
1 parent c3aeeb4 commit bc6ddc6

File tree

24 files changed

+179
-39
lines changed

24 files changed

+179
-39
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ dependencies {
6161
implementation(project(":core:data:onboarding"))
6262
implementation(project(":core:data:setting"))
6363
implementation(project(":core:data:user"))
64+
implementation(project(":core:data:history"))
6465
implementation(project(":core:push"))
6566
implementation(project(":core:notification"))
6667
}

build-logic/src/main/kotlin/missionmate.android.feature.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ dependencies {
2929
implementation(project(":core:domain:common"))
3030
implementation(project(":core:domain:auth"))
3131
implementation(project(":core:domain:onboarding"))
32+
implementation(project(":core:domain:history"))
3233
implementation(project(":core:ui"))
3334

3435
}

core/data/history/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ dependencies {
4646
implementation(libs.hilt.android)
4747

4848
implementation(project(":core:data:common"))
49+
implementation(project(":core:data:mission"))
4950
implementation(project(":core:domain:common"))
5051
implementation(project(":core:domain:history"))
52+
implementation(project(":core:domain:mission"))
5153
implementation(project(":core:network"))
5254
implementation(project(":core:datastore"))
5355
}

core/data/history/src/androidTest/java/com/goalpanzi/mission_mate/core/data/history/ExampleInstrumentedTest.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.goalpanzi.mission_mate.core.data.history.di
2+
3+
import com.goalpanzi.mission_mate.core.data.history.repository.HistoryRepositoryImpl
4+
import com.goalpanzi.mission_mate.core.domain.history.repository.HistoryRepository
5+
import dagger.Binds
6+
import dagger.Module
7+
import dagger.hilt.InstallIn
8+
import dagger.hilt.components.SingletonComponent
9+
10+
@Module
11+
@InstallIn(SingletonComponent::class)
12+
internal abstract class HistoryDataModule {
13+
14+
@Binds
15+
abstract fun bindHistoryRepository(impl: HistoryRepositoryImpl): HistoryRepository
16+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.goalpanzi.mission_mate.core.data.history.mapper
2+
3+
import com.goalpanzi.mission_mate.core.domain.history.model.MissionHistories
4+
import com.goalpanzi.mission_mate.core.domain.history.model.MissionHistory
5+
import com.goalpanzi.mission_mate.core.mission.mapper.toModel
6+
import com.goalpanzi.mission_mate.core.network.model.response.MissionHistoriesResponse
7+
import com.goalpanzi.mission_mate.core.network.model.response.MissionHistoryResponse
8+
9+
fun MissionHistoryResponse.toModel(): MissionHistory = MissionHistory(
10+
missionId = missionId,
11+
description = description,
12+
missionStartDate = missionStartDate,
13+
missionEndDate = missionEndDate,
14+
myVerificationCount = myVerificationCount,
15+
totalVerificationCount = totalVerificationCount,
16+
rank = rank,
17+
randomImageUrlList = randomImageUrlList,
18+
memberCount = memberCount,
19+
missionMembers = missionMembers.map {
20+
it.toModel()
21+
}
22+
)
23+
24+
fun MissionHistoriesResponse.toModel(): MissionHistories = MissionHistories(
25+
hasNext = hasNext,
26+
resultList = resultList.map {
27+
it.toModel()
28+
}
29+
)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.goalpanzi.mission_mate.core.data.history.repository
2+
3+
import com.goalpanzi.mission_mate.core.data.common.handleResult
4+
import com.goalpanzi.mission_mate.core.data.history.mapper.toModel
5+
import com.goalpanzi.mission_mate.core.domain.common.DomainResult
6+
import com.goalpanzi.mission_mate.core.domain.common.convert
7+
import com.goalpanzi.mission_mate.core.domain.history.model.MissionHistories
8+
import com.goalpanzi.mission_mate.core.domain.history.repository.HistoryRepository
9+
import com.goalpanzi.mission_mate.core.network.service.HistoryService
10+
import javax.inject.Inject
11+
12+
class HistoryRepositoryImpl @Inject constructor(
13+
private val historyService: HistoryService
14+
) : HistoryRepository {
15+
override suspend fun getMissionHistories(page: Int): DomainResult<MissionHistories> =
16+
handleResult {
17+
historyService.getMyMissionHistories(page)
18+
}.convert {
19+
it.toModel()
20+
}
21+
22+
}

core/data/mission/src/main/java/com/goalpanzi/mission_mate/core/mission/mapper/MissionMapper.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package com.goalpanzi.mission_mate.core.mission.mapper
33
import com.goalpanzi.mission_mate.core.data.common.mapper.toModel
44
import com.goalpanzi.mission_mate.core.domain.mission.model.BoardReward
55
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionBoard
6-
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionBoardMembers
6+
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionBoardMember
77
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionBoards
88
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionDetail
99
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionRank
1010
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionVerification
1111
import com.goalpanzi.mission_mate.core.domain.mission.model.MissionVerifications
1212
import com.goalpanzi.mission_mate.core.network.model.response.BoardRewardResponse
13-
import com.goalpanzi.mission_mate.core.network.model.response.MissionBoardMembersResponse
13+
import com.goalpanzi.mission_mate.core.network.model.response.MissionBoardMemberResponse
1414
import com.goalpanzi.mission_mate.core.network.model.response.MissionBoardResponse
1515
import com.goalpanzi.mission_mate.core.network.model.response.MissionBoardsResponse
1616
import com.goalpanzi.mission_mate.core.network.model.response.MissionDetailResponse
@@ -41,8 +41,8 @@ fun MissionBoardResponse.toModel() : MissionBoard {
4141
)
4242
}
4343

44-
fun MissionBoardMembersResponse.toModel() : MissionBoardMembers {
45-
return MissionBoardMembers(
44+
fun MissionBoardMemberResponse.toModel() : MissionBoardMember {
45+
return MissionBoardMember(
4646
memberId = memberId,
4747
nickname = nickname,
4848
characterType = characterType.toModel()

core/data/onboarding/src/main/java/com/goalpanzi/mission_mate/core/data/onboarding/repository/OnboardingRepositoryImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.goalpanzi.mission_mate.core.data.onboarding.repository
22

3-
import com.goalpanzi.mission_mate.core.mission.mapper.toModel
43
import com.goalpanzi.mission_mate.core.data.common.handleResult
54
import com.goalpanzi.mission_mate.core.data.onboarding.mapper.toModel
65
import com.goalpanzi.mission_mate.core.data.onboarding.mapper.toRequest
@@ -10,6 +9,7 @@ import com.goalpanzi.mission_mate.core.domain.mission.model.MissionDetail
109
import com.goalpanzi.mission_mate.core.domain.onboarding.model.CreateMissionBody
1110
import com.goalpanzi.mission_mate.core.domain.onboarding.model.Missions
1211
import com.goalpanzi.mission_mate.core.domain.onboarding.repository.OnboardingRepository
12+
import com.goalpanzi.mission_mate.core.mission.mapper.toModel
1313
import com.goalpanzi.mission_mate.core.network.model.request.JoinMissionRequest
1414
import com.goalpanzi.mission_mate.core.network.service.OnboardingService
1515
import javax.inject.Inject

core/domain/history/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ dependencies {
2424
ksp(libs.hilt.compiler)
2525

2626
implementation(project(":core:domain:common"))
27+
implementation(project(":core:domain:mission"))
2728
}

0 commit comments

Comments
 (0)