where<T extends Model> static method

Future<List<T>> where<T extends Model>({
  1. required String field,
  2. required dynamic value,
  3. String comp = "==",
  4. DatabaseDisk disk = Model.defaultDisk,
})

Filters records where field comp value.

Supported comp: ==, !=, >, <, >=, <=, contains

Implementation

static Future<List<T>> where<T extends Model>({required String field, required dynamic value, String comp = "==", DatabaseDisk disk = Model.defaultDisk}) async {
  switch (disk) {
    case DatabaseDisk.file:
      try {
        final models = await JsonFileModel.where<T>(field: field, value: value, comp: comp);
        if (models.isNotEmpty) {
          models.map((model) => model.disk = .file);
          return models;
        }
        return [];
      } catch (e) {
        return [];
      }
    case DatabaseDisk.sqlite:
      try {
        final models = await SQLiteModel.where<T>(field: field, value: value, comp: comp);
        if (models.isNotEmpty) {
          models.map((model) => model.disk = .sqlite);
          return models;
        }
        return [];
      } catch (e) {
        return [];
      }
    case DatabaseDisk.s3:
      try {
        final models = await S3JsonFileModel.where<T>(field: field, value: value, comp: comp);
        if (models.isNotEmpty) {
          models.map((model) => model.disk = .s3);
          return models;
        }
        return [];
      } catch (e) {
        return [];
      }
    case DatabaseDisk.pgsql:
      try {
        final models = await PostgresModel.where<T>(field: field, value: value, comp: comp);
        if (models.isNotEmpty) {
          models.map((model) => model.disk = .pgsql);
          return models;
        }
        return [];
      } catch (e) {
        return [];
      }
  }
}