create<T extends Model> static method

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

Creates a new record from fromJson.

Implementation

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