From c5d2649f9c55a3f50f2276da31e1131f06ffa2cf Mon Sep 17 00:00:00 2001 From: Kevin Kutzner Date: Mon, 24 Jan 2022 21:58:36 +0100 Subject: [PATCH] add post with request body to api --- .../de/kebidge/middleware/ShoppingAPI.java | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/kebidge/middleware/ShoppingAPI.java b/src/main/java/de/kebidge/middleware/ShoppingAPI.java index 1e6659e..32959e0 100644 --- a/src/main/java/de/kebidge/middleware/ShoppingAPI.java +++ b/src/main/java/de/kebidge/middleware/ShoppingAPI.java @@ -13,8 +13,12 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +// WRONG IMPORT!!! +//import io.swagger.v3.oas.annotations.parameters.RequestBody; + @RestController public class ShoppingAPI { @@ -93,7 +97,6 @@ public class ShoppingAPI { //return "Increased Amount (from " + (tempItem.amount - amount) + " to " + newItem.amount + ") of " + newItem.item + " successfully in shoppingItemRepository"; return newItem; } - } @@ -133,7 +136,7 @@ public class ShoppingAPI { logger.info("new id = {}", tempItem.id); logger.info("new item = {}", tempItem.item); - logger.info("amount = {}", tempItem.amount); + logger.info("new amount = {}", tempItem.amount); return "Increased Amount (from " + (tempItem.amount - 1) + " to " + newItem.amount + ") of " + newItem.item + " successfully in shoppingItemRepository"; } @@ -146,12 +149,51 @@ public class ShoppingAPI { logger.info("----- ADD Item -----"); logger.info("new id = {}", newItem.id); logger.info("new item = {}", newItem.item); - logger.info("amount = {}", newItem.amount); + logger.info("new amount = {}", newItem.amount); return "Added " + newItem.item + " successfully to shoppingItemRepository"; } + @PostMapping(consumes = "application/json", produces = "application/json", path = "/shoppingItem/add") + public ShoppingItem addShoppingItemRequestBody(@RequestBody ShoppingItem newItem) { + + Iterable iterableItems = shoppingItemRepository.findAll(); + Iterator itemTerator = iterableItems.iterator(); + + while(itemTerator.hasNext()){ + + ShoppingItem tempItem = itemTerator.next(); + + if (tempItem.item.equals(newItem.item)) { + + logger.info("----- ADD Item via UI with Amount-----"); + + int newAmount = tempItem.amount + newItem.getAmount(); + + newItem.setId(tempItem.id); + newItem.setAmount(newAmount); + + shoppingItemRepository.save(newItem); + + logger.info("new id = {}", newItem.id); + logger.info("new item = {}", newItem.item); + logger.info("amount = {}", newAmount); + + return newItem; + } + } + + shoppingItemRepository.save(newItem); + + logger.info("----- ADD Item via UI -----"); + logger.info("new id = {}", newItem.id); + logger.info("new item = {}", newItem.item); + logger.info("new amount = {}", newItem.amount); + + return newItem; + } + @PutMapping("/shoppingItem/{old_item}/{new_item}") public String updaShoppingItem(@PathVariable String old_item, @PathVariable String new_item) { -- GitLab