@@ -30,30 +30,38 @@ func Handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyRespo
3030 // Create DynamoDB client
3131 svc := dynamodb .New (sess )
3232
33+ // New uuid for item id
3334 itemUuid := uuid .New ().String ()
3435
3536 fmt .Println ("Generated new item uuid:" , itemUuid )
3637
38+ // Unmarshal to Item to access object properties
3739 itemString := request .Body
3840 itemStruct := Item {}
3941 json .Unmarshal ([]byte (itemString ), & itemStruct )
4042
43+ if itemStruct .Title == "" {
44+ return events.APIGatewayProxyResponse {StatusCode : 400 }, nil
45+ }
46+
47+ // Create new item of type item
4148 item := Item {
4249 Id : itemUuid ,
4350 Title : itemStruct .Title ,
4451 Details : itemStruct .Details ,
4552 }
4653
54+ // Marshal to dynamobb item
4755 av , err := dynamodbattribute .MarshalMap (item )
4856 if err != nil {
4957 fmt .Println ("Error marshalling item: " , err .Error ())
50- return events.APIGatewayProxyResponse {Body : "Yikes" , StatusCode : 500 }, nil
58+ return events.APIGatewayProxyResponse {StatusCode : 500 }, nil
5159 }
5260
5361 tableName := os .Getenv ("DYNAMODB_TABLE" )
5462
63+ // Build put item input
5564 fmt .Println ("Putting item: %v" , av )
56-
5765 input := & dynamodb.PutItemInput {
5866 Item : av ,
5967 TableName : aws .String (tableName ),
@@ -65,15 +73,16 @@ func Handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyRespo
6573 // Checking for errors, return error
6674 if err != nil {
6775 fmt .Println ("Got error calling PutItem: " , err .Error ())
68- return events.APIGatewayProxyResponse {Body : "Yikes" , StatusCode : 500 }, nil
76+ return events.APIGatewayProxyResponse {StatusCode : 500 }, nil
6977 }
7078
71- item_marshalled , err := json .Marshal (item )
79+ // Marshal item to return
80+ itemMarshalled , err := json .Marshal (item )
7281
73- fmt .Println ("Returning item: " , string (item_marshalled ))
82+ fmt .Println ("Returning item: " , string (itemMarshalled ))
7483
7584 //Returning response with AWS Lambda Proxy Response
76- return events.APIGatewayProxyResponse {Body : string (item_marshalled ), StatusCode : 200 }, nil
85+ return events.APIGatewayProxyResponse {Body : string (itemMarshalled ), StatusCode : 200 }, nil
7786}
7887
7988func main () {
0 commit comments