getChatHistory method

Future<void> getChatHistory({
  1. String? atsign,
})

Implementation

Future<void> getChatHistory({String? atsign}) async {
  try {
    chatHistory = [];
    var key = AtKey()
      ..key = storageKey +
          (isGroupChat ? groupChatId! : '') +
          (atsign ?? chatWithAtSign ?? ' ').substring(1)
      ..sharedBy = currentAtSign!
      ..metadata = Metadata();

    var keyValue = await atClientInstance.get(key).catchError((e) {
      print('error in get ${e.errorCode} ${e.errorMessage}');
    });

    // ignore: unnecessary_null_comparison
    if (keyValue != null && keyValue.value != null) {
      chatHistoryMessages = json.decode((keyValue.value) as String) as List?;
      chatHistoryMessages!.forEach((value) {
        var message = Message.fromJson((value));
        chatHistory.insert(0, message);
      });
      chatSink.add(chatHistory);
    } else {
      chatHistoryMessages = [];
      chatSink.add(chatHistory);
    }
    var referenceKey = chatKey +
        (isGroupChat ? groupChatId! : '') +
        (chatHistory.isEmpty ? '' : chatHistory[0].time.toString()) +
        currentAtSign!;
    await checkForMissedMessages(referenceKey);
  } catch (error) {
    print('Error in getting chat -> $error');
  }
}