getMessageHistory method

Future<List<LiveTalkMessageEntity>> getMessageHistory({
  1. required int page,
  2. int size = 15,
})

Implementation

Future<List<LiveTalkMessageEntity>> getMessageHistory({
  required int page,
  int size = 15,
}) async {
  if (_sdkInfo == null) throw _clientError(LiveTalkErrorCodes.emptyInfo);

  final request = http.Request(
    'POST',
    Uri.parse('$_base${LiveTalkEndpoints.messageHistory}?page=$page&size=$size'),
  )
    ..headers.addAll({
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ${_sdkInfo!["access_token"]}',
    })
    ..body = json.encode({});

  final streamed = await request.send();
  if (streamed.statusCode != 200) {
    throw _httpError(streamed.statusCode, streamed.reasonPhrase);
  }

  final data     = await streamed.stream.bytesToString();
  final jsonData = json.decode(data) as Map<String, dynamic>;
  if (jsonData['status_code'] == -9999) throw _apiBodyError(jsonData);

  final items = jsonData['payload']['items'] as List;
  return List.generate(
    items.length,
    (i) => LiveTalkMessageEntity.fromJson(items[i] as Map<String, dynamic>),
  );
}