decrement method

  1. @override
Future<bool> decrement(
  1. String column, [
  2. int amount = 1,
  3. Map<String, dynamic> extra = const {}
])
inherited

Implementation

@override
Future<bool> decrement(
  String column, [
  int amount = 1,
  Map<String, dynamic> extra = const {},
]) async {
  try {
    final paramName = 'pamount';
    bindings[paramName] = amount;

    String setClause = "$column = $column - :$paramName";
    if (extra.isNotEmpty) {
      var extraCounter = 0;
      List<String> extraClauses = [];

      for (var entry in extra.entries) {
        final extraParamName = 'p${extraCounter++}';
        bindings[extraParamName] = entry.value;
        extraClauses.add("${entry.key} = :$extraParamName");
      }
      setClause += ", ${extraClauses.join(", ")}";
    }

    String sql =
        "UPDATE $getTable${buildJoins()} SET $setClause${buildWhereClause()}";
    conn = await getConnection();
    return await conn.execute(sql, bindings);
  } catch (e) {
    rethrow;
  }
}