getRoomKeyBySessionId method
Retrieve a key from the backup.
roomId
The ID of the room that the requested key is for.
sessionId
The ID of the megolm session whose key is requested.
version
The backup from which to retrieve the key.
Implementation
Future<KeyBackupData> getRoomKeyBySessionId(
String roomId,
String sessionId,
String version,
) async {
final requestUri = Uri(
path:
'_matrix/client/v3/room_keys/keys/${Uri.encodeComponent(roomId)}/${Uri.encodeComponent(sessionId)}',
queryParameters: {
'version': version,
},
);
final request = Request('GET', baseUri!.resolveUri(requestUri));
request.headers['authorization'] = 'Bearer ${bearerToken!}';
final response = await httpClient.send(request);
final responseBody = await response.stream.toBytes();
if (response.statusCode != 200) unexpectedResponse(response, responseBody);
final responseString = utf8.decode(responseBody);
final json = jsonDecode(responseString);
return KeyBackupData.fromJson(json as Map<String, Object?>);
}