#59 username is now saved to user document on register

This commit is contained in:
lbarraga 2023-04-13 17:16:23 +02:00
parent 57d959a510
commit e7ab3aadc1
4 changed files with 23 additions and 3 deletions

View file

@ -2,7 +2,9 @@ package be.ugent.sel.studeez.di
import be.ugent.sel.studeez.domain.AccountDAO
import be.ugent.sel.studeez.domain.LogService
import be.ugent.sel.studeez.domain.UserDAO
import be.ugent.sel.studeez.domain.implementation.FirebaseAccountDAO
import be.ugent.sel.studeez.domain.implementation.FirebaseUserDAO
import be.ugent.sel.studeez.domain.implementation.LogServiceImpl
import dagger.Binds
import dagger.Module
@ -14,6 +16,8 @@ import dagger.hilt.components.SingletonComponent
abstract class DatabaseModule {
@Binds abstract fun provideAccountDAO(impl: FirebaseAccountDAO): AccountDAO
@Binds abstract fun provideUserDAO(impl: FirebaseUserDAO): UserDAO
@Binds abstract fun provideLogService(impl: LogServiceImpl): LogService
}

View file

@ -0,0 +1,4 @@
package be.ugent.sel.studeez.domain
interface UserDAO {
}

View file

@ -0,0 +1,2 @@
package be.ugent.sel.studeez.domain.implementation

View file

@ -7,21 +7,29 @@ import be.ugent.sel.studeez.common.ext.passwordMatches
import be.ugent.sel.studeez.common.snackbar.SnackbarManager
import be.ugent.sel.studeez.domain.AccountDAO
import be.ugent.sel.studeez.domain.LogService
import be.ugent.sel.studeez.domain.UserDAO
import be.ugent.sel.studeez.navigation.StudeezDestinations.HOME_SCREEN
import be.ugent.sel.studeez.navigation.StudeezDestinations.LOGIN_SCREEN
import be.ugent.sel.studeez.navigation.StudeezDestinations.SIGN_UP_SCREEN
import be.ugent.sel.studeez.screens.StudeezViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.take
import be.ugent.sel.studeez.R.string as AppText
import javax.inject.Inject
@HiltViewModel
class SignUpViewModel @Inject constructor(
private val accountService: AccountDAO,
private val accountDAO: AccountDAO,
private val userDAO: UserDAO,
logService: LogService
) : StudeezViewModel(logService) {
var uiState = mutableStateOf(SignUpUiState())
private set
private val username
get() = uiState.value.username
private val email
get() = uiState.value.email
private val password
@ -59,8 +67,10 @@ class SignUpViewModel @Inject constructor(
}
launchCatching {
accountService.signUpWithEmailAndPassword(email, password)
openAndPopUp(LOGIN_SCREEN, SIGN_UP_SCREEN)
accountDAO.signUpWithEmailAndPassword(email, password)
accountDAO.signInWithEmailAndPassword(email, password)
userDAO.save(username)
openAndPopUp(HOME_SCREEN, SIGN_UP_SCREEN)
}
}