예제 #1
0
 public static RequestHandler GetRequestHandler(
     EndpointDefinition endpointDefinition,
     RequestDbConnection requestDbConnection,
     RequestParameterValues parameterValues)
 {
     return(new RequestHandler(endpointDefinition, requestDbConnection, parameterValues));
 }
예제 #2
0
파일: Startup.cs 프로젝트: Vake93/QuickAPI
        private async Task HanldeLoginAsync(HttpContext context, ILogger logger)
        {
            try
            {
                var credentialData = await context.ReadModelAsync <Dictionary <string, string> >();

                var credentials = new Credentials(credentialData);

                using var requestDbConnection = RequestDbConnection.GetRequestDbConnection(EndpointConfiguration, credentials);
                var loginOk = await requestDbConnection.TestLoginAsync();

                if (loginOk)
                {
                    var tokens = credentials.Login(AuthConfig !);
                    await context.WriteResponseAsync(tokens, HttpStatusCode.OK);
                }
                else
                {
                    await context.WriteResponseAsync(new { Error = "Invalid Credentials" }, HttpStatusCode.Unauthorized);
                }
            }
            catch (Exception e)
            {
                logger.LogError(e, e.Message);
                await context.WriteErrorResponseAsync(e);
            }
        }
예제 #3
0
 private RequestHandler(
     EndpointDefinition endpointDefinition,
     RequestDbConnection requestDbConnection,
     RequestParameterValues parameterValues)
 {
     _endpointDefinition  = endpointDefinition;
     _requestDbConnection = requestDbConnection;
     _parameterValues     = parameterValues;
 }
예제 #4
0
파일: Startup.cs 프로젝트: Vake93/QuickAPI
        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);
            }
        }