getRoomKeyBySessionId method

Future<KeyBackupData> getRoomKeyBySessionId(
  1. String roomId,
  2. String sessionId,
  3. String version
)

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?>);
}