clear method

  1. @override
Future clear({
  1. DataFieldParams? params,
  2. Object? args,
})

Method to clear data with optional data source builder.

Example:

repository.clear(
  params: Params({"field1": "value1", "field2": "value2"}),
);

Implementation

@override
Future<Response<T>> clear({
  DataFieldParams? params,
  Object? args,
}) async {
  return execute(() {
    return source(params).get().then((value) {
      if (!value.exists) return Response(status: Status.notFound);
      final ids =
          value.children.map((e) => e.key).whereType<String>().toList();
      if (ids.isEmpty) return Response(status: Status.notFound);
      return deleteByIds(ids, params: params).then((deleted) {
        return deleted.copy(
          backups: value.children.map((e) => build(e.value)).toList(),
          snapshot: value,
          status: Status.ok,
        );
      });
    });
  });
}