find<T extends Model> static method

Future<T?> find<T extends Model>({
  1. required int id,
})

Implementation

static Future<T?> find<T extends Model>({required int id}) async {
  try {
    final constructor = _jsonConstructors[T];
    if (constructor == null) return null;

    final tableName = _getTableName<T>();

    final result = await _database.execute(Sql.named('SELECT * FROM "$tableName" WHERE id = @id LIMIT 1'), parameters: {'id': id});

    if (result.isNotEmpty) {
      return constructor(result.first.toColumnMap()) as T;
    }

    return null;
  } catch (e) {
    return null;
  }
}