createAccount method
Implementation
Future<void> createAccount() async {
final userName = UserName.tryParse(signUpName.text);
final userLogin = UserLogin.tryParse(signUpLogin.text);
final userEmail = UserEmail.tryParse(signUpEmail.text);
final userPassword = UserPassword.tryParse(password.text);
final passwordRepeat = UserPassword.tryParse(repeatPassword.text);
if (!signUpName.isEmpty.value && userName == null) {
signUpName.error.value = 'err_incorrect_input'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
if (!signUpLogin.isEmpty.value && userLogin == null) {
signUpLogin.error.value = 'err_incorrect_login_input'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
if (!signUpEmail.isEmpty.value && userEmail == null) {
signUpEmail.error.value = 'err_incorrect_input'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
if (!password.isEmpty.value && userPassword == null) {
password.error.value = 'err_password_incorrect'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
if (!repeatPassword.isEmpty.value && passwordRepeat == null) {
repeatPassword.error.value = 'err_password_incorrect'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
if (userPassword != passwordRepeat) {
password.error.value = 'err_passwords_mismatch'.l10n;
repeatPassword.error.value = 'err_passwords_mismatch'.l10n;
page.value = IntroductionStage.accountCreating;
return;
}
try {
await register(
login: userLogin,
password: userPassword,
name: userName,
email: userEmail,
);
} on SignUpException catch (e) {
login.error.value = e.toMessage();
page.value = IntroductionStage.accountCreating;
} catch (e) {
password.error.value = 'err_data_transfer'.l10n;
page.value = IntroductionStage.accountCreating;
rethrow;
}
}