init()

in sdk/communication/AzureCommunicationChat/Source/PushNotification/PushNotificationBaseEvent.swift [101:123]


    init(from data: Data) throws {
        let pushNotificationMessageReceivedPayload: PushNotificationMessageReceivedPayload = try JSONDecoder()
            .decode(PushNotificationMessageReceivedPayload.self, from: data)

        self.message = pushNotificationMessageReceivedPayload.messageBody

        if pushNotificationMessageReceivedPayload.acsChatMessageMetadata != "null" {
            if let acsChatMetadata = pushNotificationMessageReceivedPayload.acsChatMessageMetadata.data(using: .utf8) {
                self.metadata = try JSONDecoder().decode([String: String?].self, from: acsChatMetadata)
            }
        }

        super.init(
            messageId: pushNotificationMessageReceivedPayload.messageId,
            type: ChatMessageType(pushNotificationMessageReceivedPayload.messageType),
            threadId: pushNotificationMessageReceivedPayload.groupId,
            sender: createCommunicationIdentifier(fromRawId: pushNotificationMessageReceivedPayload.senderId),
            recipient: createCommunicationIdentifier(fromRawId: pushNotificationMessageReceivedPayload.recipientId),
            senderDisplayName: pushNotificationMessageReceivedPayload.senderDisplayName,
            originalArrivalTime: Iso8601Date(string: pushNotificationMessageReceivedPayload.originalArrivalTime),
            version: pushNotificationMessageReceivedPayload.version
        )
    }