Skip to content

Commit

Permalink
#219 UserInfoRepositoryImpl에서 @Inject를 불필요하게 사용하여 제거
Browse files Browse the repository at this point in the history
  • Loading branch information
pknujsp committed Mar 11, 2024
1 parent c1d8270 commit 24a12e2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,17 @@ import com.android.mediproject.core.datastore.AppDataStore
import com.android.mediproject.core.model.user.AccountState
import com.android.mediproject.core.network.datasource.user.UserInfoDataSource
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.channelFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.zip
import javax.inject.Inject
import javax.inject.Singleton

@Singleton
class UserInfoRepositoryImpl @Inject constructor(
class UserInfoRepositoryImpl(
private val userInfoDataSource: UserInfoDataSource, private val appDataStore: AppDataStore,
) : UserInfoRepository {

private val _myAccountInfo = MutableStateFlow<AccountState>(AccountState.Unknown)

override val myAccountInfo get() = _myAccountInfo as StateFlow<AccountState>
override val myAccountInfo = _myAccountInfo.asStateFlow()

override suspend fun updateMyAccountInfo(accountState: AccountState) {
_myAccountInfo.value = accountState
Expand Down Expand Up @@ -65,5 +61,4 @@ class UserInfoRepositoryImpl @Inject constructor(
trySend(it)
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,21 @@ import com.android.mediproject.core.data.user.UserInfoRepository
import com.android.mediproject.core.model.sign.LoginParameter
import com.android.mediproject.core.model.sign.SignUpParameter
import com.android.mediproject.core.model.user.AccountState
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.channelFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.map
import javax.inject.Inject
import javax.inject.Singleton

@Singleton
class SignUseCase @Inject constructor(
private val signRepository: SignRepository, private val userInfoRepository: UserInfoRepository,
) {
suspend fun login(loginParameter: LoginParameter): Result<Boolean> = signRepository.login(loginParameter)
suspend fun login(loginParameter: LoginParameter) = signRepository.login(loginParameter)

suspend fun signUp(signUpParameter: SignUpParameter): Result<Boolean> = signRepository.signUp(signUpParameter)

suspend fun signOut() = signRepository.signOut()

val savedEmail: Flow<String> = channelFlow {
userInfoRepository.myAccountInfo.collectLatest {
trySend(if (it is AccountState.SignedIn) it.email else "")
}
val savedEmail = userInfoRepository.myAccountInfo.map {
if (it is AccountState.SignedIn) it.email else ""
}
}

0 comments on commit 24a12e2

Please sign in to comment.