create<T extends Model> static method

Future<T?> create<T extends Model>({
  1. required Map<String, dynamic> fromJson,
  2. Disk disk = Model.defaultDisk,
})

Creates a new record from fromJson.

Implementation

static Future<T?> create<T extends Model>({
  required Map<String, dynamic> fromJson,
  Disk disk = Model.defaultDisk,
}) async {
  if (fromJson['password'] != null) {
    fromJson['password'] = Hasher.hashPassword(fromJson['password']);
  }
  switch (disk) {
    case Disk.file:
      try {
        final model = await JsonFileModel.create<T>(fromJson);
        if (model != null) {
          model.disk = Disk.file;
          return model;
        }
        return null;
      } catch (e) {
        return null;
      }
    case Disk.sqlite:
      try {
        final model = await SQLiteModel.create<T>(fromJson);
        if (model != null) {
          model.disk = Disk.file;
          return model;
        }
        return null;
      } catch (e) {
        return null;
      }
    case Disk.s3:
      return null;
  }
}