Skip to content

Instantly share code, notes, and snippets.

@richardgrantserverless
Created April 11, 2022 22:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardgrantserverless/65cd5799b1b02d14f1cd56d4b99049a4 to your computer and use it in GitHub Desktop.
Save richardgrantserverless/65cd5799b1b02d14f1cd56d4b99049a4 to your computer and use it in GitHub Desktop.
package com.serverless;
...
import com.serverless.dal.Product;
public class CreateProductHandler implements RequestHandler<Map<String, Object>, ApiGatewayResponse> {
private final Logger logger = Logger.getLogger(this.getClass());
@Override
public ApiGatewayResponse handleRequest(Map<String, Object> input, Context context) {
try {
// get the 'body' from input
JsonNode body = new ObjectMapper().readTree((String) input.get("body"));
// create the Product object for post
Product product = new Product();
// product.setId(body.get("id").asText());
product.setName(body.get("name").asText());
product.setPrice((float) body.get("price").asDouble());
product.save(product);
// send the response back
return ApiGatewayResponse.builder()
.setStatusCode(200)
.setObjectBody(product)
.setHeaders(Collections.singletonMap("X-Powered-By", "AWS Lambda & Serverless"))
.build();
} catch (Exception ex) {
logger.error("Error in saving product: " + ex);
// send the error response back
Response responseBody = new Response("Error in saving product: ", input);
return ApiGatewayResponse.builder()
.setStatusCode(500)
.setObjectBody(responseBody)
.setHeaders(Collections.singletonMap("X-Powered-By", "AWS Lambda & Serverless"))
.build();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment