diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/UserRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/UserRepository.kt index d68ea728..049c19b3 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/UserRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/UserRepository.kt @@ -1,11 +1,12 @@ package com.ninecraft.booket.core.data.api.repository import com.ninecraft.booket.core.model.OnboardingState +import com.ninecraft.booket.core.model.TermsAgreementModel import com.ninecraft.booket.core.model.UserProfileModel import kotlinx.coroutines.flow.Flow interface UserRepository { - suspend fun agreeTerms(termsAgreed: Boolean): Result + suspend fun agreeTerms(termsAgreed: Boolean): Result suspend fun getUserProfile(): Result diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt index 3e7428a4..fc8702a7 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt @@ -19,6 +19,7 @@ import com.ninecraft.booket.core.model.RecentBookModel import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.core.model.RecordRegisterModel import com.ninecraft.booket.core.model.SeedModel +import com.ninecraft.booket.core.model.TermsAgreementModel import com.ninecraft.booket.core.model.UserProfileModel import com.ninecraft.booket.core.network.response.BookDetailResponse import com.ninecraft.booket.core.network.response.BookSearchResponse @@ -36,6 +37,7 @@ import com.ninecraft.booket.core.network.response.RecentBook import com.ninecraft.booket.core.network.response.RecordDetailResponse import com.ninecraft.booket.core.network.response.RecordRegisterResponse import com.ninecraft.booket.core.network.response.SeedResponse +import com.ninecraft.booket.core.network.response.TermsAgreementResponse import com.ninecraft.booket.core.network.response.UserProfileResponse internal fun UserProfileResponse.toModel(): UserProfileModel { @@ -236,3 +238,13 @@ internal fun Category.toEmotionModel(): EmotionModel? { count = count, ) } + +internal fun TermsAgreementResponse.toModel(): TermsAgreementModel { + return TermsAgreementModel( + id = id, + email = email, + nickname = nickname, + provider = provider, + termsAgreed = termsAgreed, + ) +} diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultUserRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultUserRepository.kt index f6eaaf1d..f9cf7741 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultUserRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultUserRepository.kt @@ -13,8 +13,7 @@ internal class DefaultUserRepository @Inject constructor( private val onboardingDataSource: OnboardingDataSource, ) : UserRepository { override suspend fun agreeTerms(termsAgreed: Boolean) = runSuspendCatching { - service.agreeTerms(TermsAgreementRequest(termsAgreed)) - Unit + service.agreeTerms(TermsAgreementRequest(termsAgreed)).toModel() } override suspend fun getUserProfile() = runSuspendCatching { diff --git a/core/model/src/main/kotlin/com/ninecraft/booket/core/model/TermsAgreementModel.kt b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/TermsAgreementModel.kt new file mode 100644 index 00000000..8dfada34 --- /dev/null +++ b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/TermsAgreementModel.kt @@ -0,0 +1,9 @@ +package com.ninecraft.booket.core.model + +data class TermsAgreementModel( + val id: String, + val email: String, + val nickname: String, + val provider: String, + val termsAgreed: Boolean, +)