#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
	
	 lbarraga
						lbarraga