FormMessage.fromInteractiveMessage constructor

FormMessage.fromInteractiveMessage(
  1. InteractiveMessage message
)

Implementation

factory FormMessage.fromInteractiveMessage(InteractiveMessage message) {
  List<ElementEntity> elementList = [];
  ButtonElement? submitElement;
  if (message.interactiveData[ModelFieldConstants.formFields] != null) {
    for (var element in (message
        .interactiveData[ModelFieldConstants.formFields] as List)) {
      elementList.add(ElementEntity.fromMap(element));
    }
  }

  if (message.interactiveData[ModelFieldConstants.submitElement] != null) {
    submitElement = ButtonElement.fromMap(
        message.interactiveData[ModelFieldConstants.submitElement]);
  } else {
    submitElement = ButtonElement(
        elementType: UIElementTypeConstants.button,
        elementId: "xxx1234xxx",
        buttonText: "Not found");
  }

  return FormMessage(
      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,
      title: message.interactiveData[ModelFieldConstants.title] ?? "",
      goalCompletionText:
          message.interactiveData[ModelFieldConstants.goalCompletionText],
      formFields: elementList,
      submitElement: submitElement,
      interactionGoal: message.interactionGoal,
      interactions: message.interactions,
      allowSenderInteraction: message.allowSenderInteraction);
}