public async Task <APIGatewayProxyResponse> Handle(APIGatewayProxyRequest request) { if (!ValidateRequest(request, out var errorResponse)) { return(errorResponse); } var model = BuildModelFromRequest(request.Body); var photograph = BuildPhotographyFromModel(model); var photographTable = Table.LoadTable(_dynamoDb, TableNames.Photograph); await photographTable.PutItemAsync(PhotographSerialization.ToDocument(photograph)); await _sns.PublishAsync(TopicArns.ImageProcessor, JsonConvert.SerializeObject(new ImageProcessorMessage { PhotographId = photograph.Id, Image = photograph.Images.Single() })); return(BuildResponseFromModel(photograph)); }
public async Task <APIGatewayProxyResponse> Handle(APIGatewayProxyRequest request) { var idStr = request.PathParameters["id"]; if (!Guid.TryParse(idStr, out var id)) { return(Response.CreateError(HttpStatusCode.BadRequest, "Invalid photograph id")); } var photographTable = Table.LoadTable(_dynamoDb, TableNames.Photograph); var document = await photographTable.GetItemAsync(id); if (document == null) { return(Response.CreateError(HttpStatusCode.NotFound, "No photograph with the requested id was found")); } var model = PhotographSerialization.FromDocument(document); return(BuildResponseFromModel(model)); }
public async Task <APIGatewayProxyResponse> Handle(APIGatewayProxyRequest request) { if (!ValidateRequest(request, out var errorResponse)) { return(errorResponse); } var idStr = request.PathParameters["id"]; if (!Guid.TryParse(idStr, out var id)) { return(Response.CreateError(HttpStatusCode.BadRequest, "Invalid photograph id")); } var model = BuildModelFromRequest(request.Body); var updateDocument = BuildDocumentFromModel(model); var photographTable = Table.LoadTable(_dynamoDb, TableNames.Photograph); var document = await photographTable.UpdateItemAsync(updateDocument, id, new UpdateItemOperationConfig { ReturnValues = ReturnValues.AllNewAttributes }); var photograph = PhotographSerialization.FromDocument(document); return(BuildResponseFromModel(photograph)); }