loadTopicMessages method

Future<List<Message>> loadTopicMessages(
  1. String? topic,
  2. int? page,
  3. int? size
)

Implementation

Future<List<Message>> loadTopicMessages(
    String? topic, int? page, int? size) async {
  //
  final loadTopicMessagesUrl =
      BytedeskUtils.getHostUri('/api/messages/topic', {
    'page': page.toString(),
    'size': size.toString(),
    'topic': topic,
    'client': client
  });
  debugPrint("loadTopicMessages Url $loadTopicMessagesUrl");
  final initResponse =
      await httpClient.get(loadTopicMessagesUrl, headers: getHeaders());
  //
  //解决json解析中的乱码问题
  Utf8Decoder utf8decoder = const Utf8Decoder(); // fix 中文乱码
  //将string类型数据 转换为json类型的数据
  final responseJson =
      json.decode(utf8decoder.convert(initResponse.bodyBytes));
  debugPrint("loadTopicMessages:$responseJson");
  // 判断token是否过期
  if (responseJson.toString().contains('invalid_token')) {
    bytedeskEventBus.fire(InvalidTokenEventBus());
  }
  //
  List<Message> messageList =
      (responseJson['data']['content'] as List<dynamic>)
          .map((item) => Message.fromJson(item))
          .toList();

  return messageList;
}