updateSync method

List<Blob> updateSync({
  1. required QueryBuilder query(
    1. Collection collection
    ),
  2. Map<String, dynamic>? metadata,
  3. Uint8List? bytes,
})

Implementation

List<Blob> updateSync({
  required QueryBuilder Function(Collection collection) query,
  Map<String, dynamic>? metadata,
  Uint8List? bytes,
}) {
  final rows = query(_collection).getSync();

  final updatedBlobs = <Blob>[];

  for (var row in rows) {
    Document? updatedRow = row;
    if (metadata != null && metadata.isNotEmpty) {
      final data = {...row.data, ...metadata};
      final tempUpdatedRow = _collection.updateByIdSync(row.id, data);
      if (tempUpdatedRow == null) continue;
      updatedRow = tempUpdatedRow;
    }

    if (bytes != null && bytes.isNotEmpty) {
      _blobDiskDriver.updateChunksSync(row.id, bytes, _chunksSize);
    }

    updatedBlobs.add(
      Blob(id: updatedRow.id, metadata: updatedRow, blobDiskDriver: _blobDiskDriver),
    );
  }

  return updatedBlobs;
}