in sdk/communication/AzureCommunicationChat/Source/Signaling/Events/ChatEvent.swift [223:249]
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 messageReceivedPayload: MessageReceivedPayload = try JSONDecoder()
.decode(MessageReceivedPayload.self, from: requestJsonData)
self.message = messageReceivedPayload.messageBody
if messageReceivedPayload.acsChatMessageMetadata != "null" {
if let acsChatMetadata = messageReceivedPayload.acsChatMessageMetadata.data(using: .utf8) {
self.metadata = try JSONDecoder().decode([String: String?].self, from: acsChatMetadata)
}
}
super.init(
threadId: messageReceivedPayload.groupId,
sender: createCommunicationIdentifier(fromRawId: messageReceivedPayload.senderId),
recipient: createCommunicationIdentifier(fromRawId: messageReceivedPayload.recipientMri),
id: messageReceivedPayload.messageId,
senderDisplayName: messageReceivedPayload.senderDisplayName,
createdOn: Iso8601Date(string: messageReceivedPayload.originalArrivalTime),
version: messageReceivedPayload.version,
type: ChatMessageType(messageReceivedPayload.messageType)
)
}