in BasketLambda/src/Function.cs [60:109]
public async Task<APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context)
{
string body = string.Empty;
var headers = new Dictionary<string, string>
{
{ "Content-Type", "application/json" },
{ "Access-Control-Allow-Origin", "*" },
{ "Allow", "GET, OPTIONS, POST, DELETE" },
{ "Access-Control-Allow-Methods", "GET, OPTIONS, POST, DELETE" },
{ "Access-Control-Allow-Headers", "*" },
};
try
{
var claims = apigProxyEvent.RequestContext.Authorizer.Claims;
switch (apigProxyEvent.HttpMethod)
{
case "GET":
body = await this.dynamoDBService.GetBasket(apigProxyEvent.PathParameters["id"]);
break;
case "DELETE":
body = await this.dynamoDBService.DeleteBasket(claims["sub"], apigProxyEvent.PathParameters["id"]);
break;
case "POST":
var basketRequest = JsonConvert.DeserializeObject<BasketRequestBody>(apigProxyEvent.Body);
body = await this.dynamoDBService.AddToBasket(claims["sub"], basketRequest.unicorn_id);
break;
default:
break;
}
return new APIGatewayProxyResponse
{
Body = body,
Headers = headers,
StatusCode = 200,
};
}
catch (Exception e)
{
return new APIGatewayProxyResponse
{
Body = e.Message,
Headers = headers,
StatusCode = 500,
};
}
}