incrementEach method

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

Implementation

@override
Future<bool> incrementEach(
  Map<String, int> increments, [
  Map<String, dynamic> extra = const {},
]) async {
  try {
    List<String> setClauses = [];
    var counter = 0;

    for (var entry in increments.entries) {
      final paramName = 'p${counter++}';
      bindings[paramName] = entry.value;
      setClauses.add("${entry.key} = ${entry.key} + :$paramName");
    }

    if (extra.isNotEmpty) {
      for (var entry in extra.entries) {
        final paramName = 'p${counter++}';
        bindings[paramName] = entry.value;
        setClauses.add("${entry.key} = :$paramName");
      }
    }

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