diff options
| author | Kevin J Hoerr <khoerr@ksmpartners.com> | 2022-01-31 14:29:56 -0500 |
|---|---|---|
| committer | Kevin J Hoerr <khoerr@ksmpartners.com> | 2022-01-31 14:29:56 -0500 |
| commit | 10d4a74fea3aaa02149c6a8725dfcac046e1893a (patch) | |
| tree | cf76a7905d8b827e7f4eb7234f0fa62db560738b /src/main/java/dev/submelon/pantry/PantryItemController.java | |
| parent | 4b367eaa8533cfea8a3df0720aac56ae0d6f20f2 (diff) | |
| download | pantry-10d4a74fea3aaa02149c6a8725dfcac046e1893a.tar.gz pantry-10d4a74fea3aaa02149c6a8725dfcac046e1893a.tar.bz2 pantry-10d4a74fea3aaa02149c6a8725dfcac046e1893a.zip | |
Use Long's for ID; Accept JSON body
Diffstat (limited to 'src/main/java/dev/submelon/pantry/PantryItemController.java')
| -rw-r--r-- | src/main/java/dev/submelon/pantry/PantryItemController.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/main/java/dev/submelon/pantry/PantryItemController.java b/src/main/java/dev/submelon/pantry/PantryItemController.java index 1968139..c1da12e 100644 --- a/src/main/java/dev/submelon/pantry/PantryItemController.java +++ b/src/main/java/dev/submelon/pantry/PantryItemController.java @@ -3,9 +3,10 @@ package dev.submelon.pantry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller @@ -14,17 +15,20 @@ public class PantryItemController { @Autowired private PantryItemRepository itemRepository; - @PostMapping(path="/add") + @PutMapping(path="/{id}") @ResponseBody - Integer addNewItem(@RequestParam String name, @RequestParam String description, @RequestParam double quantity, @RequestParam String quantityUnitType) { - PantryItem item = new PantryItem(); - item.setName(name); - item.setDescription(description); - item.setQuantity(quantity); - item.setQuantityUnitType(quantityUnitType); - - PantryItem updatedItem = itemRepository.save(item); - return updatedItem.getId(); + PantryItem addNewItem(@RequestBody PantryItem item, @PathVariable Long id) { + return itemRepository.findById(id) + .map(existingItem -> { + existingItem.setName(item.getName()); + existingItem.setDescription(item.getDescription()); + existingItem.setQuantity(item.getQuantity()); + existingItem.setQuantityUnitType(item.getQuantityUnitType()); + return itemRepository.save(existingItem); + }) + .orElseGet(() -> { + return itemRepository.save(item); + }); } @GetMapping(path="") |
