func onTrouterRequest()

in sdk/communication/AzureCommunicationChat/Source/Signaling/CommunicationSignalingClient.swift [308:331]


    func onTrouterRequest(_ request: TrouterRequest, _ response: TrouterResponse) {
        logger.info("Received a Trouter request \n")

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

            let generalPayload = try JSONDecoder().decode(BasePayload.self, from: requestJsonData)
            let chatEventId = try ChatEventId(forCode: generalPayload.eventId)

            // Convert trouter payload to chat event payload
            let chatEvent = try TrouterEventUtil.create(chatEvent: chatEventId, from: request)
            handler(chatEvent)
        } catch {
            logger.error("Error: \(error)")
        }

        // Notify Trouter the request was handled
        response.body = "Request has been handled"
        response.status = 200
        let result: TrouterSendResponseResult = response.send()
        logger.info("Sent a response to Trouter: \(result)")
    }