push method

  1. @override
Future<void> push({
  1. required String collection,
  2. required String recordId,
  3. required Map<String, dynamic> data,
  4. required DateTime timestamp,
})
override

Push data to backend

Implementation

@override
Future<void> push({
  required String collection,
  required String recordId,
  required Map<String, dynamic> data,
  required DateTime timestamp,
}) async {
  await connection.execute(
    Sql.named('''
      INSERT INTO $collection (record_id, data, updated_at, version)
      VALUES (@recordId, @data::jsonb, @timestamp, 1)
      ON CONFLICT (record_id)
      DO UPDATE SET
        data = @data::jsonb,
        updated_at = @timestamp,
        version = $collection.version + 1
    '''),
    parameters: {
      'recordId': recordId,
      'data': data,
      'timestamp': timestamp,
    },
  );
}