in sdk/communication/AzureCommunicationChat/Source/Signaling/Events/TrouterEvent.swift [53:103]
init(chatEventId: ChatEventId, from trouterRequest: TrouterRequest?) throws {
if chatEventId == ChatEventId.realTimeNotificationConnected {
self = .realTimeNotificationConnected
return
}
if chatEventId == ChatEventId.realTimeNotificationDisconnected {
self = .realTimeNotificationDisconnected
return
}
guard let request = trouterRequest else {
throw AzureError.client("Unable to convert request body to Data.")
}
switch chatEventId {
case .realTimeNotificationConnected:
self = .realTimeNotificationConnected
case .realTimeNotificationDisconnected:
self = .realTimeNotificationDisconnected
case .chatMessageReceived:
let event = try ChatMessageReceivedEvent(from: request)
self = .chatMessageReceivedEvent(event)
case .typingIndicatorReceived:
let event = try TypingIndicatorReceivedEvent(from: request)
self = .typingIndicatorReceived(event)
case .readReceiptReceived:
let event = try ReadReceiptReceivedEvent(from: request)
self = .readReceiptReceived(event)
case .chatMessageEdited:
let event = try ChatMessageEditedEvent(from: request)
self = .chatMessageEdited(event)
case .chatMessageDeleted:
let event = try ChatMessageDeletedEvent(from: request)
self = .chatMessageDeleted(event)
case .chatThreadCreated:
let event = try ChatThreadCreatedEvent(from: request)
self = .chatThreadCreated(event)
case .chatThreadPropertiesUpdated:
let event = try ChatThreadPropertiesUpdatedEvent(from: request)
self = .chatThreadPropertiesUpdated(event)
case .chatThreadDeleted:
let event = try ChatThreadDeletedEvent(from: request)
self = .chatThreadDeleted(event)
case .participantsAdded:
let event = try ParticipantsAddedEvent(from: request)
self = .participantsAdded(event)
case .participantsRemoved:
let event = try ParticipantsRemovedEvent(from: request)
self = .participantsRemoved(event)
}
}