CardMessage.fromInteractiveMessage constructor

CardMessage.fromInteractiveMessage(
  1. InteractiveMessage message
)

Creates a CardMessage from an InteractiveMessage.

Implementation

factory CardMessage.fromInteractiveMessage(InteractiveMessage message) {
  List<BaseInteractiveElement> elementList = [];

  if (message.interactiveData[CardMessageKeys.cardActions] != null) {
    for (var elementMap
        in (message.interactiveData[CardMessageKeys.cardActions] as List)) {
      elementList.add(BaseInteractiveElement.fromMap(elementMap));
    }
  }

  return CardMessage(
      id: message.id,
      receiverType: message.receiverType,
      tags: message.tags,
      muid: message.muid,
      sender: message.sender,
      receiver: message.sender,
      receiverUid: message.receiverUid,
      type: message.type,
      category: message.category,
      sentAt: message.sentAt,
      deliveredAt: message.deliveredAt,
      readAt: message.readAt,
      metadata: message.metadata,
      readByMeAt: message.readByMeAt,
      deliveredToMeAt: message.deliveredToMeAt,
      deletedAt: message.deletedAt,
      editedAt: message.editedAt,
      deletedBy: message.deletedBy,
      editedBy: message.editedBy,
      updatedAt: message.updatedAt,
      conversationId: message.conversationId,
      parentMessageId: message.parentMessageId,
      replyCount: message.replyCount,
      text: message.interactiveData[CardMessageKeys.text] ?? "",
      cardActions: elementList,
      imageUrl: message.interactiveData[CardMessageKeys.imageUrl],
      interactionGoal: message.interactionGoal,
      interactions: message.interactions,
      allowSenderInteraction: message.allowSenderInteraction);
}