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"); }