createAccount method

  1. @override
Future<void> createAccount(
  1. Map<String, dynamic> createUserData
)
override

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');
}