Skip to content

Commit

Permalink
[feat] #43 Proto DataStore에 OnboardingInfo 정의
Browse files Browse the repository at this point in the history
  • Loading branch information
HAJIEUN02 committed Jan 19, 2025
1 parent 55d4855 commit 9e793a6
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,33 +1,53 @@
package org.android.bbangzip.data.repositoryImpl

import kotlinx.coroutines.flow.Flow
import org.android.bbangzip.OnboardingInfo
import org.android.bbangzip.UserPreferences
import org.android.bbangzip.data.datasource.local.UserLocalDataSource
import org.android.bbangzip.domain.repository.local.UserRepository
import javax.inject.Inject

class UserRepositoryImpl
@Inject
constructor(
private val userDataSource: UserLocalDataSource,
) : UserRepository {
override val userPreferenceFlow: Flow<UserPreferences> = userDataSource.userPreferencesFlow
@Inject
constructor(
private val userDataSource: UserLocalDataSource,
) : UserRepository {
override val userPreferenceFlow: Flow<UserPreferences> = userDataSource.userPreferencesFlow

override suspend fun setUserData(accessToken: String) {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.setAccessToken(accessToken)
.build()
}
override suspend fun setUserData(accessToken: String) {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.setAccessToken(accessToken)
.build()
}
}

override suspend fun clearUserData() {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.clearAccessToken()
.clearOnboardingInfo()
.build()
}
}

override suspend fun setOnboardingInfo(onboardingInfo: OnboardingInfo) {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.setOnboardingInfo(onboardingInfo)
.build()
}
}

override suspend fun clearUserData() {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.clearAccessToken()
.build()
}
override suspend fun clearOnboardingInfo() {
userDataSource.updateUserPreferences { userData ->
userData
.toBuilder()
.clearOnboardingInfo()
.build()
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.android.bbangzip.domain.repository.local

import kotlinx.coroutines.flow.Flow
import org.android.bbangzip.OnboardingInfo
import org.android.bbangzip.UserPreferences

interface UserRepository {
Expand All @@ -9,4 +10,8 @@ interface UserRepository {
suspend fun setUserData(accessToken: String)

suspend fun clearUserData()

suspend fun setOnboardingInfo(onboardingInfo: OnboardingInfo)

suspend fun clearOnboardingInfo()
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ abstract class BaseViewModel<Event : BaseContract.Event, State : BaseContract.St
reduceState(currentUiState, reducer).also { state ->
savedStateHandle[STATE_KEY] = state.toParcelable()
}
}
}.launchIn(viewModelScope)
}

protected fun updateState(
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/proto/user_prefs.proto
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,12 @@ option java_multiple_files = true;

message UserPreferences {
string accessToken = 1;
OnboardingInfo onboardingInfo = 2;
}

message OnboardingInfo {
string userName = 1;
int32 year = 2;
string semester = 3;
string subjectName = 4;
}

0 comments on commit 9e793a6

Please sign in to comment.