putRoomKeyBySessionId method
Future<RoomKeysUpdateResponse>
putRoomKeyBySessionId(
- String roomId,
- String sessionId,
- String version,
- KeyBackupData data,
inherited
Store a key in the backup.
roomId
The ID of the room that the key is for.
sessionId
The ID of the megolm session that the key is for.
version
The backup in which to store the key. Must be the current backup.
data
The key data.
Implementation
Future<RoomKeysUpdateResponse> putRoomKeyBySessionId(String roomId,
String sessionId, String version, KeyBackupData data) async {
final requestUri = Uri(
path:
'_api/client/v3/room_keys/keys/${Uri.encodeComponent(roomId)}/${Uri.encodeComponent(sessionId)}',
queryParameters: {
'version': version,
});
final request = Request('PUT', baseUri!.resolveUri(requestUri));
request.headers['authorization'] = 'Bearer ${bearerToken!}';
request.headers['content-type'] = 'application/json';
request.bodyBytes = utf8.encode(jsonEncode(data.toJson()));
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 RoomKeysUpdateResponse.fromJson(json as Map<String, Object?>);
}