#59 username is now saved to user document on register
This commit is contained in:
parent
57d959a510
commit
e7ab3aadc1
4 changed files with 23 additions and 3 deletions
|
@ -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
|
||||
|
||||
}
|
4
app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt
Normal file
4
app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt
Normal file
|
@ -0,0 +1,4 @@
|
|||
package be.ugent.sel.studeez.domain
|
||||
|
||||
interface UserDAO {
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
package be.ugent.sel.studeez.domain.implementation
|
||||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue