patchDocument static method
Patch a document (client-side) using JSON Merge Patch
Implementation
static Future<DocumentFrameResponse> patchDocument(
P2PStream stream, {
required PeerId ownerPeerId,
required String path,
required Map<String, dynamic> patch,
String? ifMatch,
}) async {
try {
final headers = <String, String>{
'Content-Type': 'application/merge-patch+json',
};
if (ifMatch != null) {
headers['If-Match'] = ifMatch;
}
final patchBytes = Uint8List.fromList(utf8.encode(jsonEncode(patch)));
final requestBytes = DocumentFrame.encodeRequest(
operation: 'PATCH',
ownerPeerId: ownerPeerId,
path: path,
headers: headers,
body: patchBytes,
);
await _writeFrameStatic(stream, requestBytes);
// Read response
final responseBytes = await _readFrameStatic(stream);
return DocumentFrame.decodeResponse(responseBytes);
} catch (e, stackTrace) {
_logger.severe('Error patching document: $e', e, stackTrace);
rethrow;
}
}