getRoomTags method

Future<Map<String, Tag>?> getRoomTags(
  1. String userId,
  2. String roomId
)

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']);
}