Skip to content

Commit aaf57df

Browse files
authored
Merge #78 -> develop
Feat/#78 home 지역 수정 api 연동
2 parents 4e9edb6 + 38aaa59 commit aaf57df

31 files changed

+345
-86
lines changed

app/src/main/java/com/paw/key/data/di/RepositoryModule.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
package com.paw.key.data.di
22

33
import com.paw.key.data.repositoryimpl.DummyRepositoryImpl
4-
import com.paw.key.data.repositoryimpl.OnboardingInfoRepositoryImpl
5-
import com.paw.key.data.repositoryimpl.OnboardingRegionRepositoryImpl
6-
import com.paw.key.data.repositoryimpl.OnboardingRepositoryImpl
4+
import com.paw.key.data.repositoryimpl.onboarding.OnboardingInfoRepositoryImpl
5+
import com.paw.key.data.repositoryimpl.onboarding.OnboardingRegionRepositoryImpl
6+
import com.paw.key.data.repositoryimpl.onboarding.OnboardingRepositoryImpl
77
import com.paw.key.data.repositoryimpl.RegionRepositoryImpl
88
import com.paw.key.data.repositoryimpl.WalkCourseRepositoryImpl
99
import com.paw.key.data.repositoryimpl.WalkSharedResultRepositoryImpl
10+
import com.paw.key.data.repositoryimpl.home.HomeRegionRepositoryImpl
1011
import com.paw.key.domain.repository.DummyRepository
11-
import com.paw.key.domain.repository.OnboardingInfoRepository
12-
import com.paw.key.domain.repository.OnboardingRegionRepository
13-
import com.paw.key.domain.repository.OnboardingRepository
12+
import com.paw.key.domain.repository.onboarding.OnboardingInfoRepository
13+
import com.paw.key.domain.repository.onboarding.OnboardingRegionRepository
14+
import com.paw.key.domain.repository.onboarding.OnboardingRepository
1415
import com.paw.key.domain.repository.RegionRepository
1516
import com.paw.key.domain.repository.WalkSharedResultRepository
17+
import com.paw.key.domain.repository.home.HomeRegionRepository
1618
import com.paw.key.domain.repository.walkcourse.WalkCourseRepository
1719
import dagger.Binds
1820
import dagger.Module
@@ -65,4 +67,10 @@ interface RepositoryModule {
6567
fun bindOnboardingInfoRepository(
6668
impl: OnboardingInfoRepositoryImpl
6769
): OnboardingInfoRepository
70+
71+
@Binds
72+
@Singleton
73+
fun bindHomeRegionRepository(
74+
impl: HomeRegionRepositoryImpl
75+
): HomeRegionRepository
6876
}

app/src/main/java/com/paw/key/data/di/ServiceModule.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.paw.key.data.di
22

33
import com.paw.key.data.service.DummyService
4-
import com.paw.key.data.service.OnboardingInfoService
5-
import com.paw.key.data.service.OnboardingPetsService
6-
import com.paw.key.data.service.OnboardingRegionService
4+
import com.paw.key.data.service.onboarding.OnboardingInfoService
5+
import com.paw.key.data.service.onboarding.OnboardingPetsService
6+
import com.paw.key.data.service.onboarding.OnboardingRegionService
77
import com.paw.key.data.service.RegionService
8+
import com.paw.key.data.service.home.HomeRegionService
89
import com.paw.key.data.service.walkcourse.WalkCourseService
910
import dagger.Module
1011
import dagger.Provides
@@ -46,4 +47,9 @@ object ServiceModule {
4647
fun provideOnboardingInfoService(retrofit: Retrofit): OnboardingInfoService =
4748
retrofit.create(OnboardingInfoService::class.java)
4849

50+
@Provides
51+
@Singleton
52+
fun provideHomeRegionService(retrofit: Retrofit): HomeRegionService =
53+
retrofit.create(HomeRegionService::class.java)
54+
4955
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.paw.key.data.dto.request.home
2+
3+
import kotlinx.serialization.SerialName
4+
import kotlinx.serialization.Serializable
5+
6+
@Serializable
7+
data class HomeRegionRequest (
8+
@SerialName ("regionId")
9+
val regionId: Int
10+
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.paw.key.data.dto.response.home
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class HomeRegionResponse<T>(
7+
val code: String,
8+
val message: String,
9+
val data: T? = null
10+
)

app/src/main/java/com/paw/key/data/remote/datasource/OnboardingInfoDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.paw.key.data.remote.datasource
22

33
import com.paw.key.data.dto.response.onboarding.OnboardingInfoResponse
4-
import com.paw.key.data.service.OnboardingInfoService
4+
import com.paw.key.data.service.onboarding.OnboardingInfoService
55
import okhttp3.MultipartBody
66
import okhttp3.RequestBody
77
import javax.inject.Inject

app/src/main/java/com/paw/key/data/remote/datasource/OnboardingPetsDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.paw.key.data.remote.datasource
22

3-
import com.paw.key.data.service.OnboardingPetsService
3+
import com.paw.key.data.service.onboarding.OnboardingPetsService
44
import javax.inject.Inject
55

66
class OnboardingPetsDataSource @Inject constructor(

app/src/main/java/com/paw/key/data/remote/datasource/OnboardingRegionDataSource.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.paw.key.data.remote.datasource
22

3-
import com.paw.key.data.service.OnboardingPetsService
4-
import com.paw.key.data.service.OnboardingRegionService
3+
import com.paw.key.data.service.onboarding.OnboardingRegionService
54
import javax.inject.Inject
65

76
class OnboardingRegionDataSource @Inject constructor(
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.paw.key.data.remote.datasource.home
2+
3+
import com.paw.key.data.dto.request.home.HomeRegionRequest
4+
import com.paw.key.data.service.home.HomeRegionService
5+
import com.paw.key.data.service.onboarding.OnboardingPetsService
6+
import javax.inject.Inject
7+
8+
class HomeRegionDataSource @Inject constructor(
9+
private val service: HomeRegionService
10+
) {
11+
suspend fun patchRegion(userId: Int, regionId: Int) =
12+
service.patchRegion(userId, HomeRegionRequest(regionId))
13+
}
14+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.paw.key.data.repositoryimpl.home
2+
3+
import com.paw.key.data.remote.datasource.home.HomeRegionDataSource
4+
import com.paw.key.domain.model.entity.home.HomeRegionDataEntity
5+
import com.paw.key.domain.repository.home.HomeRegionRepository
6+
import javax.inject.Inject
7+
8+
class HomeRegionRepositoryImpl @Inject constructor(
9+
private val dataSource: HomeRegionDataSource,
10+
) : HomeRegionRepository {
11+
12+
override suspend fun patchRegion(userId: Int, regionId: Int): Result<HomeRegionDataEntity> {
13+
return runCatching {
14+
val response = dataSource.patchRegion(userId, regionId)
15+
if (response.code == "S000") {
16+
HomeRegionDataEntity(success = true)
17+
} else {
18+
throw Exception(response.message)
19+
}
20+
}
21+
}
22+
}

app/src/main/java/com/paw/key/data/repositoryimpl/OnboardingInfoRepositoryImpl.kt renamed to app/src/main/java/com/paw/key/data/repositoryimpl/onboarding/OnboardingInfoRepositoryImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package com.paw.key.data.repositoryimpl
1+
package com.paw.key.data.repositoryimpl.onboarding
22

33
import com.paw.key.data.dto.response.onboarding.OnboardingInfoResponse
44
import com.paw.key.data.remote.datasource.OnboardingInfoDataSource
5-
import com.paw.key.domain.repository.OnboardingInfoRepository
5+
import com.paw.key.domain.repository.onboarding.OnboardingInfoRepository
66
import okhttp3.MultipartBody
77
import okhttp3.RequestBody
88
import javax.inject.Inject

0 commit comments

Comments
 (0)