putRoomKeysVersion method
Future<Map<String, Object?> >
putRoomKeysVersion(
- String version,
- BackupAlgorithm algorithm,
- Map<
String, Object?> authData
Update information about an existing backup. Only auth_data
can be modified.
version
The backup version to update, as returned in the version
parameter in the response of
POST /_matrix/client/v3/room_keys/version
or GET /_matrix/client/v3/room_keys/version/{version}
.
algorithm
The algorithm used for storing backups. Must be the same as
the algorithm currently used by the backup.
authData
Algorithm-dependent data. See the documentation for the backup
algorithms in Server-side key backups for more information on the
expected format of the data.
Implementation
Future<Map<String, Object?>> putRoomKeysVersion(
String version,
BackupAlgorithm algorithm,
Map<String, Object?> authData,
) async {
final requestUri = Uri(
path:
'_matrix/client/v3/room_keys/version/${Uri.encodeComponent(version)}',
);
final request = Request('PUT', baseUri!.resolveUri(requestUri));
request.headers['authorization'] = 'Bearer ${bearerToken!}';
request.headers['content-type'] = 'application/json';
request.bodyBytes = utf8.encode(
jsonEncode({
'algorithm': algorithm.name,
'auth_data': authData,
}),
);
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 json as Map<String, Object?>;
}