messageFromJsonDictionary static method

MBMessage messageFromJsonDictionary(
  1. Map<String, dynamic> jsonDictionary
)

Creates and initializes a MBMessage from a JSON dictionary. @param jsonDictionary The JSON dictionary to convert. @returns The message created with the data of the JSON.

Implementation

static MBMessage messageFromJsonDictionary(
    Map<String, dynamic> jsonDictionary) {
  int id = jsonDictionary['id'];
  String title = jsonDictionary['title'];
  String messageDescription = jsonDictionary['messageDescription'];
  String messageTypeString = jsonDictionary['type'];
  MBMessageType messageType = _messageTypeForString(messageTypeString);

  int createdAtInt = jsonDictionary['createdAt'];
  int? startDateInt = jsonDictionary['startDate'];
  int? endDateInt = jsonDictionary['endDate'];
  bool automationIsOn = jsonDictionary['automationIsOn'];

  int sendAfterDays = jsonDictionary['sendAfterDays'];
  int repeatTimes = jsonDictionary['repeatTimes'];

  MBInAppMessage? inAppMessage;
  MBPushMessage? pushMessage;
  MBMessageTriggers? triggers;

  if (jsonDictionary['inAppMessage'] != null) {
    inAppMessage = MBInAppMessageSavingUtility.inAppMessageFromJsonDictionary(
        jsonDictionary['inAppMessage']);
  }
  if (jsonDictionary['push'] != null) {
    pushMessage = MBPushMessageSavingUtility.pushMessageFromJsonDictionary(
        jsonDictionary['push']);
  }
  if (jsonDictionary['triggers'] != null) {
    triggers =
        MBMessageTriggers.fromJsonDictionary(jsonDictionary['triggers']);
  }

  MBMessage message = MBMessage(
    id: id,
    title: title,
    messageDescription: messageDescription,
    messageType: messageType,
    createdAt: DateTime.fromMillisecondsSinceEpoch(createdAtInt * 1000),
    startDate: startDateInt != null
        ? DateTime.fromMillisecondsSinceEpoch(startDateInt * 1000)
        : null,
    endDate: endDateInt != null
        ? DateTime.fromMillisecondsSinceEpoch(endDateInt * 1000)
        : null,
    automationIsOn: automationIsOn,
    inAppMessage: inAppMessage,
    pushMessage: pushMessage,
    sendAfterDays: sendAfterDays,
    repeatTimes: repeatTimes,
    triggers: triggers,
  );
  return message;
}