From d25548b015855aeaefaf8b4f29c4d4c1baebee2a Mon Sep 17 00:00:00 2001 From: bedwar2 Date: Sat, 7 Mar 2020 11:20:46 -0500 Subject: [PATCH] Updating since block operation causes 500 error Original implementation fails in Postman because of the ".block()". This version uses flatmap instead to do the update. --- .../controllers/CategoryController.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/guru/springframework/spring5webfluxrest/controllers/CategoryController.java b/src/main/java/guru/springframework/spring5webfluxrest/controllers/CategoryController.java index 8ca4f3b..4019581 100644 --- a/src/main/java/guru/springframework/spring5webfluxrest/controllers/CategoryController.java +++ b/src/main/java/guru/springframework/spring5webfluxrest/controllers/CategoryController.java @@ -42,17 +42,16 @@ Mono update(@PathVariable String id, @RequestBody Category category) { return categoryRepository.save(category); } - @PatchMapping("/api/v1/categories/{id}") - Mono patch(@PathVariable String id, @RequestBody Category category) { - - Category foundCategory = categoryRepository.findById(id).block(); - - if(foundCategory.getDescription() != category.getDescription()){ - foundCategory.setDescription(category.getDescription()); - return categoryRepository.save(foundCategory); - } - - return Mono.just(foundCategory); - } + @PatchMapping(path = "/{id}") + public Mono patch(@PathVariable String id, @RequestBody Category category) { + return categoryRepository.findById(id) + .flatMap(response -> { + if (response.getDescription() != category.getDescription()) { + response.setDescription(category.getDescription()); + return categoryRepository.save(response); + } + return Mono.just(response); + }); + } }