Example #1
0
        public IWebhookPackage HandleAdvancedWebhook(Dictionary <string, List <string> > headers, string body, string method = null, string path = null)
        {
            IServerSentEvent serverSentEvent = _transport.HandleServerSentEvent(headers, body, method, path);

            if (serverSentEvent is ServerSentEventAuthorizationResponse)
            {
                ServerSentEventAuthorizationResponse authEvent = (ServerSentEventAuthorizationResponse)serverSentEvent;

                AdvancedAuthorizationResponse advancedAuthorizationResponse = ParseAuthsGetToAdvancedAuthorizationPackage(authEvent);

                return(new AdvancedAuthorizationResponseWebhookPackage(
                           advancedAuthorizationResponse
                           ));
            }

            if (serverSentEvent is ServerSentEventUserServiceSessionEnd)
            {
                var sessionEvent = (ServerSentEventUserServiceSessionEnd)serverSentEvent;
                return(new ServiceUserSessionEndWebhookPackage(
                           sessionEvent.UserHash,
                           sessionEvent.ApiTime
                           ));
            }

            throw new InvalidRequestException("Unknown response type");
        }
        public IWebhookPackage HandleWebhook(
            Dictionary <string, List <string> > headers, string body,
            string method, string path
            )
        {
            IServerSentEvent serverSentEvent = _transport.HandleServerSentEvent(headers, body, method, path);

            if (serverSentEvent is ServerSentEventDeviceLinked)
            {
                var deviceLinkTransport  = ((ServerSentEventDeviceLinked)serverSentEvent).DeviceLinkCompletion;
                var deviceLinkCompletion = new Domain.Directory.DeviceLinkCompletionResponse(
                    deviceLinkTransport.DeviceId, deviceLinkTransport.DevicePublicKey, deviceLinkTransport.DevicePublicKeyId
                    );

                return(new DirectoryUserDeviceLinkCompletionWebhookPackage(
                           deviceLinkCompletion
                           ));
            }

            throw new InvalidRequestException("Unknown response type");
        }