public async Task OnConnect()

in Application/Communication/ImageRecognition.Communication.Functions/Functions.cs [43:82]


        public async Task<APIGatewayProxyResponse> OnConnect(APIGatewayProxyRequest request, ILambdaContext context)
        {
            if (_jwtValidationParameters == null)
                _jwtValidationParameters = await CreateTokenValidationParameters(context);

            try
            {
                var username = ValidateAndGetUsername(request, context);


                var domainName = request.RequestContext.DomainName;
                var stage = request.RequestContext.Stage;
                var endpoint = $"https://{domainName}/{stage}";

                if (string.IsNullOrEmpty(username))
                {
                    context.Logger.LogLine("Error, no username claim found in JWT token");
                    return new APIGatewayProxyResponse
                    {
                        StatusCode = (int) HttpStatusCode.Unauthorized
                    };
                }

                context.Logger.LogLine(
                    $"Login with connection id: {request.RequestContext.ConnectionId}, Endpoint: {endpoint}, Username: {username}");
                await _manager.LoginAsync(request.RequestContext.ConnectionId, endpoint, username);

                return new APIGatewayProxyResponse
                {
                    StatusCode = (int) HttpStatusCode.OK
                };
            }
            catch
            {
                return new APIGatewayProxyResponse
                {
                    StatusCode = (int) HttpStatusCode.Unauthorized
                };
            }
        }