Ejemplo n.º 1
0
 public Task <Response> Handle(Request request)
 {
     return(request.RequestContext.Http.Method switch {
         "GET" => Get(request),
         "POST" => Post(request),
         _ => Any(request)
     });
Ejemplo n.º 2
0
 protected override Response Get(Request request)
 {
     return(new Response
     {
         StatusCode = 200,
         Body = $"Welcome to the CSBoost API. Available functions: Hello, Cookie."
     });
 }
        public Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyResponse Add(Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyRequest __request__, Amazon.Lambda.Core.ILambdaContext __context__)
        {
            var complexNumbers = __request__.Body;

            var response = complexCalculator.Add(complexNumbers, __context__, __request__);

            var body = System.Text.Json.JsonSerializer.Serialize(response);

            return(new Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyResponse
            {
                Body = body,
                Headers = new Dictionary <string, string>
                {
                    { "Content-Type", "application/json" }
                },
                StatusCode = 200
            });
        }
Ejemplo n.º 4
0
        protected override async Task <Response> Get(Request request)
        {
            try
            {
                await db.Add("testPk", "testPassword");

                return(new Response {
                    StatusCode = (int)Code.OK,
                    Body = await db.Get("testPk")
                });
            }
            catch (Exception e)
            {
                return(new Response {
                    StatusCode = (int)Code.BAD_REQUEST,
                    Body = e.ToString()
                });
            }
        }
Ejemplo n.º 5
0
        protected override Response Get(Request request)
        {
            var query = request.QueryStringParameters;

            if (query is null || !query.ContainsKey("name") || query["name"] == "")
            {
                return(new Response
                {
                    StatusCode = (int)Code.BAD_REQUEST,
                    Body = $"Sorry, I don't think we've met. Please include a name parameter in the url query!"
                });
            }

            var name = query["name"];

            return(new Response
            {
                StatusCode = 200,
                Body = $"Hello, {name}! {x++}"
            });
        }
Ejemplo n.º 6
0
        protected override Response Get(Request request)
        {
            if (request.Cookies is null || request.Cookies.Length == 0)
            {
                var token = GenerateToken(
                    !(request.QueryStringParameters is null) &&
                    request.QueryStringParameters.ContainsKey("allowed") &&
                    request.QueryStringParameters["allowed"] == "true"
                    );
                return(new Response {
                    StatusCode = (int)Code.OK,
                    Body = "No token was found, so a new one was added.",
                    Cookies = new string[] { token }
                });
            }
            PasetoPayload payload;

            try
            {
                payload = decoder.DecodeToObject(request.Cookies[0]).Payload;
            }
            catch
            {
                return(new Response {
                    StatusCode = (int)Code.UNAUTHORIZED,
                    Body = "Token was invalid!"
                });
            }
            if (!Authenticated(payload))
            {
                return(new Response {
                    StatusCode = (int)Code.FORBIDDEN,
                    Body = "Access denied!"
                });
            }
            return(new Response {
                StatusCode = (int)Code.OK,
                Body = "Authorised."
            });
        }
Ejemplo n.º 7
0
        protected override Response Get(Request request)
        {
            if (request.Cookies is null || request.Cookies.Length == 0)
            {
                var newCookie = "sample cookie";
                return(new Response {
                    StatusCode = (int)Code.OK,
                    Body = $"Could not find any cookies, so [{newCookie}] was added.",
                    Cookies = new string[] {
                        newCookie
                    },
                });
            }

            var cookie = request.Cookies[0];

            return(new Response
            {
                StatusCode = (int)Code.OK,
                Body = $"Found [{cookie}]",
                Cookies = request.Cookies
            });
        }
        public Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyResponse Subtract(Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyRequest __request__, Amazon.Lambda.Core.ILambdaContext __context__)
        {
            var validationErrors = new List <string>();

            var complexNumbers = default(System.Collections.Generic.IList <System.Collections.Generic.IList <int> >);

            try
            {
                complexNumbers = System.Text.Json.JsonSerializer.Deserialize <System.Collections.Generic.IList <System.Collections.Generic.IList <int> > >(__request__.Body);
            }
            catch (Exception e)
            {
                validationErrors.Add($"Value {__request__.Body} at 'body' failed to satisfy constraint: {e.Message}");
            }

            // return 400 Bad Request if there exists a validation error
            if (validationErrors.Any())
            {
                return(new Amazon.Lambda.APIGatewayEvents.APIGatewayHttpApiV2ProxyResponse
                {
                    Body = @$ "{{" "message" ": " "{validationErrors.Count} validation error(s) detected: {string.Join(", ", validationErrors)}" "}}",
                    Headers = new Dictionary <string, string>
                    {
                        { "Content-Type", "application/json" },
                        { "x-amzn-ErrorType", "ValidationException" }
                    },
                    StatusCode = 400
                });