getRoomTags method
List the tags set by a user on a room.
userId
The id of the user to get tags for. The access token must be
authorized to make requests for this user ID.
roomId
The ID of the room to get tags for.
returns tags
:
Implementation
Future<Map<String, Tag>?> getRoomTags(String userId, String roomId) async {
final requestUri = Uri(
path:
'_matrix/client/v3/user/${Uri.encodeComponent(userId)}/rooms/${Uri.encodeComponent(roomId)}/tags');
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 ((v) => v != null
? (v as Map<String, Object?>)
.map((k, v) => MapEntry(k, Tag.fromJson(v as Map<String, Object?>)))
: null)(json['tags']);
}