public static RequestHandler GetRequestHandler( EndpointDefinition endpointDefinition, RequestDbConnection requestDbConnection, RequestParameterValues parameterValues) { return(new RequestHandler(endpointDefinition, requestDbConnection, parameterValues)); }
private RequestHandler( EndpointDefinition endpointDefinition, RequestDbConnection requestDbConnection, RequestParameterValues parameterValues) { _endpointDefinition = endpointDefinition; _requestDbConnection = requestDbConnection; _parameterValues = parameterValues; }
private async Task HandleRequestAsync(HttpContext context, EndpointDefinition endpointDefinition, ILogger logger) { try { var credentials = AuthEnabled ? Credentials.Authenticate(context, AuthConfig !) : null; var parameterValues = RequestParameterValues.ResolveParameters(context, endpointDefinition); using var requestDbConnection = RequestDbConnection.GetRequestDbConnection(EndpointConfiguration, credentials); using var requestHandler = RequestHandler.GetRequestHandler(endpointDefinition, requestDbConnection, parameterValues); var items = await requestHandler.HandleRequestAsync(); await context.WriteResponseAsync(new { Items = items }, HttpStatusCode.OK); } catch (Exception e) { logger.LogError(e, e.Message); await context.WriteErrorResponseAsync(e); } }