Skip to content

Commit

Permalink
[feature/#1011] 계정 찾기 서버통신 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
leeeyubin committed Jan 23, 2025
1 parent bdab419 commit ed33c33
Show file tree
Hide file tree
Showing 9 changed files with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.launch
import org.sopt.official.domain.auth.model.InformationWithCode
import org.sopt.official.domain.auth.model.InitialInformation
import org.sopt.official.domain.auth.model.UserPhoneNumber
import org.sopt.official.domain.auth.repository.AuthRepository
import org.sopt.official.feature.auth.model.AuthStatus
import javax.inject.Inject
Expand Down Expand Up @@ -52,4 +53,18 @@ class CertificationViewModel @Inject constructor(
}
}
}

fun findAccount() {
viewModelScope.launch {
repository.findAccount(
UserPhoneNumber(
phone = "01012345678"
)
).onSuccess {
_sideEffect.emit(CertificationSideEffect.ShowToast("성공!!!"))
}.onFailure {
_sideEffect.emit(CertificationSideEffect.ShowToast("실패ㅠㅠ"))
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.sopt.official.data.auth.mapper

import org.sopt.official.data.auth.remote.request.FindAccountRequest
import org.sopt.official.data.auth.remote.response.FindAccountResponse
import org.sopt.official.domain.auth.model.AccountResult
import org.sopt.official.domain.auth.model.UserPhoneNumber

fun UserPhoneNumber.toRequest(): FindAccountRequest =
FindAccountRequest(
phone = phone
)

fun FindAccountResponse.toDomain(): AccountResult =
AccountResult(
platform = platform
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,17 @@ import org.sopt.official.data.auth.model.NonDataBaseAuthResponse
import org.sopt.official.data.auth.remote.request.CertificateCodeRequest
import org.sopt.official.data.auth.remote.request.ChangeAccountRequest
import org.sopt.official.data.auth.remote.request.CreateCodeRequest
import org.sopt.official.data.auth.remote.request.FindAccountRequest
import org.sopt.official.data.auth.remote.request.SignInRequest
import org.sopt.official.data.auth.remote.request.SignUpRequest
import org.sopt.official.data.auth.remote.response.CertificateCodeResponse
import org.sopt.official.data.auth.remote.response.FindAccountResponse
import org.sopt.official.data.auth.remote.response.SignInResponse
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.PATCH
import retrofit2.http.POST
import retrofit2.http.Query

internal interface AuthApi {
@POST("/api/v1/auth/phone")
Expand All @@ -38,4 +42,9 @@ internal interface AuthApi {
suspend fun changeAccount(
@Body request: ChangeAccountRequest
): NonDataBaseAuthResponse

@GET("/api/v1/social/accounts/platform")
suspend fun findAccount(
@Query("phone") request: FindAccountRequest
): BaseAuthResponse<FindAccountResponse>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.sopt.official.data.auth.remote.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class FindAccountRequest(
@SerialName("phone")
val phone: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.sopt.official.data.auth.remote.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class FindAccountResponse(
@SerialName("platform")
val platform: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ package org.sopt.official.data.auth.repository
import org.sopt.official.data.auth.mapper.toDomain
import org.sopt.official.data.auth.mapper.toRequest
import org.sopt.official.data.auth.remote.api.AuthApi
import org.sopt.official.domain.auth.model.AccountResult
import org.sopt.official.domain.auth.model.InformationWithCode
import org.sopt.official.domain.auth.model.InitialInformation
import org.sopt.official.domain.auth.model.OriginalInformation
import org.sopt.official.domain.auth.model.SignInCode
import org.sopt.official.domain.auth.model.SignInResult
import org.sopt.official.domain.auth.model.SignUpCode
import org.sopt.official.domain.auth.model.UserPhoneNumber
import org.sopt.official.domain.auth.model.VerificationResult
import org.sopt.official.domain.auth.repository.AuthRepository
import javax.inject.Inject
Expand Down Expand Up @@ -36,4 +38,8 @@ internal class DefaultAuthRepository @Inject constructor(
override suspend fun changeAccount(request: OriginalInformation): Result<Unit> = runCatching {
authApi.changeAccount(request.toRequest())
}

override suspend fun findAccount(request: UserPhoneNumber): Result<AccountResult> = runCatching {
authApi.findAccount(request.toRequest()).data.toDomain()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.sopt.official.domain.auth.model

data class AccountResult(
val platform: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.sopt.official.domain.auth.model

data class UserPhoneNumber(
val phone: String
)
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package org.sopt.official.domain.auth.repository

import org.sopt.official.domain.auth.model.AccountResult
import org.sopt.official.domain.auth.model.InformationWithCode
import org.sopt.official.domain.auth.model.InitialInformation
import org.sopt.official.domain.auth.model.OriginalInformation
import org.sopt.official.domain.auth.model.SignInCode
import org.sopt.official.domain.auth.model.SignInResult
import org.sopt.official.domain.auth.model.SignUpCode
import org.sopt.official.domain.auth.model.UserPhoneNumber
import org.sopt.official.domain.auth.model.VerificationResult

interface AuthRepository {
Expand All @@ -18,4 +20,6 @@ interface AuthRepository {
suspend fun signUp(request: SignUpCode): Result<Unit>

suspend fun changeAccount(request: OriginalInformation): Result<Unit>

suspend fun findAccount(request: UserPhoneNumber): Result<AccountResult>
}

0 comments on commit ed33c33

Please sign in to comment.