reportContent method

Future<void> reportContent(
  1. String roomId,
  2. String eventId, {
  3. String? reason,
  4. int? score,
})

Reports an event as inappropriate to the server, which may then notify the appropriate people.

roomId The room in which the event being reported is located.

eventId The event to report.

reason The reason the content is being reported. May be blank.

score The score to rate this content as where -100 is most offensive and 0 is inoffensive.

Implementation

Future<void> reportContent(String roomId, String eventId,
    {String? reason, int? score}) async {
  final requestUri = Uri(
      path:
          '_matrix/client/v3/rooms/${Uri.encodeComponent(roomId)}/report/${Uri.encodeComponent(eventId)}');
  final request = Request('POST', baseUri!.resolveUri(requestUri));
  request.headers['authorization'] = 'Bearer ${bearerToken!}';
  request.headers['content-type'] = 'application/json';
  request.bodyBytes = utf8.encode(jsonEncode({
    if (reason != null) 'reason': reason,
    if (score != null) 'score': score,
  }));
  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 ignore(json);
}