updateSyncById method

Blob? updateSyncById(
  1. String id, {
  2. Map<String, dynamic>? metadata,
  3. Uint8List? bytes,
})

Implementation

Blob? updateSyncById(String id, {Map<String, dynamic>? metadata, Uint8List? bytes}) {
  final row = _collection.getByIdSync(id);
  if (row == null) return null;

  Document? updatedRow = row;

  if (metadata != null && metadata.isNotEmpty) {
    final data = {...row.data, ...metadata};
    final tempUpdatedRow = _collection.updateByIdSync(row.id, data);
    if (tempUpdatedRow == null) return null;
    updatedRow = tempUpdatedRow;
  }

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

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