updateByIds method

Future<Response<T>> updateByIds(
  1. Iterable<DataWriter> updates, {
  2. DataFieldParams? params,
  3. bool? resolveRefs,
  4. Ignore? ignore,
  5. bool updateRefs = false,
  6. bool? lazyMode,
  7. bool? backupMode,
})

Method to update data by multiple IDs with optional data source builder.

Example:

List<UpdatingInfo> updates = [
  UpdatingInfo('userId1', {'status': 'inactive'}),
  UpdatingInfo('userId2', {'status': 'active'}),
];
repository.updateByIds(
  updates,
  params: Params({"field1": "value1", "field2": "value2"}),
);

Implementation

Future<Response<T>> updateByIds(
  Iterable<DataWriter> updates, {
  DataFieldParams? params,
  bool? resolveRefs,
  Ignore? ignore,
  bool updateRefs = false,
  bool? lazyMode,
  bool? backupMode,
}) {
  return _modifier(DataModifiers.updateByIds, () async {
    if (isBackupMode(backupMode)) {
      if (isLazyMode(lazyMode)) {
        _backup((source) {
          return source.updateByIds(
            updates,
            params: params,
            resolveRefs: resolveRefs,
            ignore: ignore,
            updateRefs: updateRefs,
          );
        });
      } else {
        await _backup((source) {
          return source.updateByIds(
            updates,
            params: params,
            resolveRefs: resolveRefs,
            ignore: ignore,
            updateRefs: updateRefs,
          );
        });
      }
    }
    return _execute((source) {
      return source.updateByIds(
        updates,
        params: params,
        resolveRefs: resolveRefs,
        ignore: ignore,
        updateRefs: updateRefs,
      );
    });
  });
}