toChatMessage static method

ChatMessage toChatMessage(
  1. String docRef,
  2. Map<String, dynamic> docData,
  3. ChatEntity chatEntity
)

Converts a normalized message document's data into a ChatMessage, resolving the sender against chatEntity's known peers.

docData must already have its timestamp field normalized to a DateTime by the backend that produced it (see ChatBackend.fetchMessages).

Implementation

static ChatMessage toChatMessage(
  String docRef,
  Map<String, dynamic> docData,
  ChatEntity chatEntity,
) {
  //
  return ChatMessage(
    user:
        chatEntity.peers[docData["userId"]]?.toChatUser() ??
        ChatUser(id: docData["userId"], lastName: "", firstName: ""),
    text: docData["text"],
    medias: docData["photos"] != null
        ? (docData["photos"] as List).map((e) {
            return ChatMedia(
              url: e['url'] ?? e ?? "",
              fileName: e['fileName'] ?? "",
              type: MediaType.image,
            );
          }).toList()
        : [],
    createdAt: docData["timestamp"] is DateTime
        ? docData["timestamp"] as DateTime
        : DateTime.now(),
    customProperties: {"ref": docRef},
  );
}