Skip to content

Commit

Permalink
[feat]#232: 온보딩 데이터 가져와요
Browse files Browse the repository at this point in the history
  • Loading branch information
flash159483 committed Feb 1, 2025
1 parent d155e73 commit e41f177
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import com.bff.wespot.data.remote.source.message.MessageStorageDataSource
import com.bff.wespot.data.remote.source.message.MessageStorageDataSourceImpl
import com.bff.wespot.data.remote.source.notification.NotificationDataSource
import com.bff.wespot.data.remote.source.notification.NotificationDataSourceImpl
import com.bff.wespot.data.remote.source.serverDriven.OnBoardingDataSource
import com.bff.wespot.data.remote.source.serverDriven.OnBoardingDataSourceImpl
import com.bff.wespot.data.remote.source.user.UserDataSource
import com.bff.wespot.data.remote.source.user.UserDataSourceImpl
import com.bff.wespot.data.remote.source.vote.VoteDataSource
Expand Down Expand Up @@ -88,4 +90,10 @@ abstract class DataRemoteModule {
abstract fun bindsImageDecoderDataSource(
imageDecoderDataSourceImpl: ImageDecoderDataSourceImpl
): ImageDecoderDataSource

@Binds
@Singleton
abstract fun bindsOnBoardingDataSource(
onBoardingDataSourceImpl: OnBoardingDataSourceImpl
): OnBoardingDataSource
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.bff.wespot.data.remote.source.serverDriven

import com.bff.wespot.data.remote.model.serverDriven.OnBoardingDto
import com.bff.wespot.model.serverDriven.OnBoardingCategory

interface OnBoardingDataSource {
suspend fun getOnBoarding(category: OnBoardingCategory): Result<OnBoardingDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.bff.wespot.data.remote.source.serverDriven

import com.bff.wespot.data.remote.model.serverDriven.OnBoardingDto
import com.bff.wespot.model.serverDriven.OnBoardingCategory
import com.bff.wespot.network.extensions.safeRequest
import io.ktor.client.HttpClient
import io.ktor.client.request.parameter
import io.ktor.http.HttpMethod
import io.ktor.http.path
import javax.inject.Inject

class OnBoardingDataSourceImpl @Inject constructor(
private val httpClient: HttpClient
) : OnBoardingDataSource {
override suspend fun getOnBoarding(category: OnBoardingCategory): Result<OnBoardingDto> =
httpClient.safeRequest {
url {
method = HttpMethod.Get
path("api/v1/on-boarding")
parameter("category", category.name)
}
}
}
12 changes: 10 additions & 2 deletions data/src/main/kotlin/com/bff/wespot/data/di/DataModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,25 @@ package com.bff.wespot.data.di

import com.bff.wespot.data.repository.CommonRepositoryImpl
import com.bff.wespot.data.repository.DataStoreRepositoryImpl
import com.bff.wespot.data.repository.firebase.config.RemoteConfigRepositoryImpl
import com.bff.wespot.data.repository.auth.AuthRepositoryImpl
import com.bff.wespot.data.repository.firebase.config.RemoteConfigRepositoryImpl
import com.bff.wespot.data.repository.firebase.messaging.MessagingRepositoryImpl
import com.bff.wespot.data.repository.message.MessageRepositoryImpl
import com.bff.wespot.data.repository.message.MessageStorageRepositoryImpl
import com.bff.wespot.data.repository.notification.NotificationRepositoryImpl
import com.bff.wespot.data.repository.serverDriven.OnBoardingRepositoryImpl
import com.bff.wespot.data.repository.user.ProfileRepositoryImpl
import com.bff.wespot.data.repository.user.UserRepositoryImpl
import com.bff.wespot.data.repository.vote.VoteRepositoryImpl
import com.bff.wespot.domain.repository.CommonRepository
import com.bff.wespot.domain.repository.DataStoreRepository
import com.bff.wespot.domain.repository.firebase.config.RemoteConfigRepository
import com.bff.wespot.domain.repository.auth.AuthRepository
import com.bff.wespot.domain.repository.firebase.config.RemoteConfigRepository
import com.bff.wespot.domain.repository.firebase.messaging.MessagingRepository
import com.bff.wespot.domain.repository.message.MessageRepository
import com.bff.wespot.domain.repository.message.MessageStorageRepository
import com.bff.wespot.domain.repository.notification.NotificationRepository
import com.bff.wespot.domain.repository.serverDriven.OnBoardingRepository
import com.bff.wespot.domain.repository.user.ProfileRepository
import com.bff.wespot.domain.repository.user.UserRepository
import com.bff.wespot.domain.repository.vote.VoteRepository
Expand Down Expand Up @@ -96,4 +98,10 @@ abstract class DataModule {
abstract fun messagingRepository(
messagingRepositoryImpl: MessagingRepositoryImpl
): MessagingRepository

@Binds
@Singleton
abstract fun bindsOnBoardingRepository(
onBoardingRepositoryImpl: OnBoardingRepositoryImpl
): OnBoardingRepository
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.bff.wespot.data.repository.serverDriven

import com.bff.wespot.data.remote.source.serverDriven.OnBoardingDataSource
import com.bff.wespot.domain.repository.serverDriven.OnBoardingRepository
import com.bff.wespot.model.serverDriven.OnBoarding
import com.bff.wespot.model.serverDriven.OnBoardingCategory
import javax.inject.Inject

class OnBoardingRepositoryImpl @Inject constructor(
private val onBoardingDataSource: OnBoardingDataSource
) : OnBoardingRepository {
override suspend fun getOnBoarding(category: OnBoardingCategory): Result<OnBoarding> =
onBoardingDataSource.getOnBoarding(category)
.mapCatching {
it.toDomain()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.bff.wespot.domain.repository.serverDriven

import com.bff.wespot.model.serverDriven.OnBoarding
import com.bff.wespot.model.serverDriven.OnBoardingCategory

interface OnBoardingRepository {
suspend fun getOnBoarding(category: OnBoardingCategory): Result<OnBoarding>
}

0 comments on commit e41f177

Please sign in to comment.