createAccount static method
Implementation
static Future<void> createAccount(Map<String, dynamic> userData) async {
await initialize();
logger.finest('createAccount start');
// accountSignUpType
var accountSignUpType = AccountSignUpType.hycop;
if (userData['accountSignUpType'] == null) {
userData['accountSignUpType'] = accountSignUpType.index;
} else {
accountSignUpType =
AccountSignUpType.fromInt(int.parse(userData['accountSignUpType'].toString()));
if (accountSignUpType == AccountSignUpType.none) {
logger.severe('invalid sign-up type !!!');
throw HycopUtils.getHycopException(defaultMessage: 'invalid sign-up type !!!');
}
}
logger.info('accountSignUpType($accountSignUpType)');
// password
String password = userData['password'] ?? '';
if (password.isEmpty && accountSignUpType == AccountSignUpType.hycop) {
// hycop-service need password !!!
logger.severe('password is empty !!!');
throw HycopUtils.getHycopException(defaultMessage: 'password is empty !!!');
}
String passwordSha1 = '';
if (accountSignUpType == AccountSignUpType.hycop) {
// hycop-service's password = sha1-hash of password
passwordSha1 = HycopUtils.stringToSha1(password);
} else {
// not hycop-service's password = sha1-hash of email
String email = userData['email'] ?? '';
if (email.isEmpty) {
logger.severe('email is empty !!!');
throw HycopUtils.getHycopException(defaultMessage: 'email is empty !!!');
}
passwordSha1 = HycopUtils.stringToSha1(email);
password = passwordSha1;
}
userData['password'] = passwordSha1;
logger.finest('password resetting to [$password] (${accountSignUpType.name}');
// createAccount
await HycopFactory.account!.createAccount(userData).catchError((error, stackTrace) =>
throw HycopUtils.getHycopException(
error: error, defaultMessage: 'AccountManager.createAccount Failed !!!'));
logger.finest('createAccount end');
_currentLoginUser = UserModel(userData: userData);
await createSession();
logger.finest('createAccount set');
}