alterUserByTransaction static method

Future<UserDto?> alterUserByTransaction(
  1. String email,
  2. WardenType wardenType,
  3. SchemaMetaData smd,
  4. DbTransaction transaction, {
  5. bool closeTransaction = true,
})

Implementation

static Future<UserDto?> alterUserByTransaction(String email,
    WardenType wardenType, SchemaMetaData smd, DbTransaction transaction,
    {bool closeTransaction = true}) async {
  // Retrieve User
  UserDto? userDto;
  try {
    UserStoreDao userStoreDao = UserStoreDao(smd, transaction);
    await userStoreDao.init();
    UserStoreDto? userStoreDto;
    try {
      userStoreDto = await userStoreDao.getUserStoreDtoByUnique(email);
    } on SqlException catch (e) {
      if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
          e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
        print("$e");
        return null;
      }
    }
    UserDao userDao = UserDao(smd, transaction);
    await userDao.init();
    try {
      userDto = await userDao.getUserDtoById(userStoreDto!.id!);
    } on SqlException catch (e) {
      if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
          e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
        print("$e");
        return null;
      }
    }
    if (wardenType != null) userDto!.warden = wardenType;
    userDto!.pass_key = "";
    try {
      await userDao.setUserDto(userDto);
    } on SqlException catch (e) {
      if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
          e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
        print("$e");
        return null;
      }
    }
  } finally {
    if (closeTransaction) {
      await transaction.connection.close();
      await transaction.endTransaction();
      await transaction.closePool();
    }
  }
  return userDto;
}