createAccount method
Implementation
@override
Future<void> createAccount(Map<String, dynamic> createUserData) async {
logger.finest('createAccount($createUserData)');
// accountSignUpType
var accountSignUpType = AccountSignUpType.fromInt(
int.parse(createUserData['accountSignUpType'].toString()),
);
// userId
String userId = createUserData['userId'] ?? '';
if (userId.isEmpty) {
// not exist userId ==> create new one
userId = HycopUtils.genUuid(includeDash: false); //const Uuid().v4().replaceAll('-', '');
createUserData['userId'] = userId;
logger.info('new userId($userId)');
}
// email
String email = createUserData['email'] ?? '';
if (email.isEmpty) {
logger.severe('email is empty !!!');
throw HycopUtils.getHycopException(defaultMessage: 'email is empty !!!');
}
// password
String password = createUserData['password'] ?? '';
// user-foreign-key
String userForeignKey =
HycopUtils.genUuid(includeDash: false); //const Uuid().v4().replaceAll('-', '');
logger.finest(
'createAccount(userId:$userId, email:$email, password:$password, name:$userForeignKey)');
createUserData['userForeignKey'] = userForeignKey;
// secret
String secret = createUserData['secret'] ?? '';
if (secret.isEmpty) {
secret = HycopUtils.genUuid(includeDash: false); //const Uuid().v4().replaceAll('-', '');
createUserData['secret'] = secret;
}
// create account
Account account = Account(AbsDatabase.awDBConn!);
final accountCreateResult = await account
.create(userId: userId, email: email, password: password, name: userForeignKey)
.catchError((error, stackTrace) => throw HycopUtils.getHycopException(
error: error, defaultMessage: 'Unknown DB Error !!!'));
if (accountCreateResult.email.isEmpty) {
logger.severe('account.create error !!!');
throw HycopUtils.getHycopException(defaultMessage: 'account.create error !!!');
}
logger.fine("before login [===");
await login(email, password, accountSignUpType: accountSignUpType).catchError((error,
stackTrace) =>
throw HycopUtils.getHycopException(error: error, defaultMessage: 'loginByEmail Error !!!'));
logger.fine("===] after login");
await HycopFactory.dataBase!
//.createData('hycop_users', 'user=$userForeignKey', createUserData)
.createData('hycop_users', userForeignKey, createUserData)
.catchError((error, stackTrace) => throw HycopUtils.getHycopException(
error: error, defaultMessage: 'createData Error !!!'));
logger.finest(
'createAccount(userId:$userId, email:$email, password:$password, name:$userForeignKey) success');
}