init()

in sdk/communication/AzureCommunicationChat/Source/Signaling/Events/ChatEvent.swift [307:334]


    init(from request: TrouterRequest) throws {
        guard let requestJsonData = request.body.data(using: .utf8) else {
            throw AzureError.client("Unable to convert request body to Data.")
        }

        let chatMessageEditedPayload: MessageEditedPayload = try JSONDecoder()
            .decode(MessageEditedPayload.self, from: requestJsonData)

        self.message = chatMessageEditedPayload.messageBody
        self.editedOn = Iso8601Date(string: chatMessageEditedPayload.edittime)

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

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