getMessages method

Future<List<SjMessageDto>> getMessages({
  1. int? chatId,
  2. int? lastMessageId,
  3. int? limit,
})

Получение данных сообщений конкретного чата.

  • chatId - айди уникального чата (см SjChatDto.id).
  • lastMessageId - айди последнего полученного сообщения после которого мы хотим получить новые (Если не указан, то по умолчанию = 0).
  • limit - максимальное кол-во получаемых данных сообщений (Если не указан, то по умолчанию = 500, а доступный максимум 10.000).

См: urls.apiMsgsGet, SjMessageDto.

Implementation

Future<List<SjMessageDto>> getMessages({
  int? chatId,
  int? lastMessageId,
  int? limit,
}) async {
  assert((limit ?? 0) <= 10000, 'Слишком большой лимит');
  final result = await $httpPost(urls.apiMsgsGet, {
    if (chatId != null) 'chat': chatId,
    if (lastMessageId != null) 'from': lastMessageId,
    if (limit != null) 'limit': limit,
  });
  if (!result.containsKey('msgs')) {
    throw const FormatException('invalid response');
  }
  final res = result['msgs'] as List;
  return res.cast<Map>().map(SjMessageDto.fromJson).toList();
}