createById method

Future<Response<T>> createById(
  1. String id,
  2. Map<String, dynamic> data, {
  3. DataFieldParams? params,
  4. bool merge = true,
  5. bool createRefs = false,
  6. bool? lazyMode,
  7. bool? backupMode,
})

Method to create data with optional data source builder.

Example:

T newData = //...;
repository.create(
  newData,
  params: Params({"field1": "value1", "field2": "value2"}),
);

Implementation

Future<Response<T>> createById(
  String id,
  Map<String, dynamic> data, {
  DataFieldParams? params,
  bool merge = true,
  bool createRefs = false,
  bool? lazyMode,
  bool? backupMode,
}) {
  return _modifier(DataModifiers.create, () async {
    if (isBackupMode(backupMode)) {
      if (isLazyMode(lazyMode)) {
        _backup((source) {
          return source.create(
            id,
            data,
            params: params,
            createRefs: createRefs,
            merge: merge,
          );
        });
      } else {
        await _backup((source) {
          return source.create(
            id,
            data,
            params: params,
            createRefs: createRefs,
            merge: merge,
          );
        });
      }
    }
    return _execute((source) {
      return source.create(
        id,
        data,
        params: params,
        createRefs: createRefs,
        merge: merge,
      );
    });
  });
}