browseDirectory static method
Browse server directory (client-side)
Implementation
static Future<DocumentFrameResponse> browseDirectory(
P2PStream stream, {
required PeerId ownerPeerId,
String? cursor,
int limit = 20,
String? search,
}) async {
try {
final requestData = <String, dynamic>{
'operation': 'DIRECTORY',
'ownerPeerId': ownerPeerId.toBase58(),
'directoryAction': 'browse',
'directoryLimit': limit,
};
if (cursor != null) requestData['directoryCursor'] = cursor;
if (search != null) requestData['directoryQuery'] = search;
final requestBytes =
Uint8List.fromList(utf8.encode(jsonEncode(requestData)));
await _writeFrameStatic(stream, requestBytes);
final responseBytes = await _readFrameStatic(stream);
return DocumentFrame.decodeResponse(responseBytes);
} catch (e, stackTrace) {
_logger.severe('Error browsing directory: $e', e, stackTrace);
rethrow;
}
}