batchDelete method

  1. @override
Future<void> batchDelete(
  1. List<Id> ids
)
override

Implementation

@override
Future<void> batchDelete(List<Id> ids) async {
  final soft = config.deletedAtField != null;
  for (final id in ids) {
    final docId = config.idToString(id);
    if (soft) {
      final patch = <String, dynamic>{
        config.deletedAtField!: DateTime.now().toUtc().toIso8601String(),
      };
      if (config.injectScopeOnWrite && config.defaultScope != null) {
        final scopeMap =
            config.scopeFieldsBuilder?.call(config.defaultScope!) ??
            {
              config.scopeNameField: config.defaultScope!.name,
              config.scopeKeysField: config.defaultScope!.keys,
            };
        patch.addAll(scopeMap);
      }
      try {
        await config.tablesDB.updateRow(
          databaseId: config.databaseId,
          tableId: config.tableId,
          rowId: docId,
          data: patch,
        );
      } on aw.AppwriteException {
        // ignore
      }
    } else {
      try {
        await config.tablesDB.deleteRow(
          databaseId: config.databaseId,
          tableId: config.tableId,
          rowId: docId,
        );
      } on aw.AppwriteException {
        // ignore
      }
    }
  }
}