From 6ceb18784f68337c840bfe15637894b0c79b79c1 Mon Sep 17 00:00:00 2001 From: johnniang Date: Wed, 3 Apr 2019 17:26:37 +0800 Subject: [PATCH] Complete menu updation and deletion api --- .../service/base/AbstractCrudService.java | 2 +- .../controller/admin/api/MenuController.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java b/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java index d093cb299..735568ec9 100644 --- a/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java +++ b/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java @@ -134,7 +134,7 @@ public abstract class AbstractCrudService implements CrudService new NotFoundException(domainName + " was not found")); + return fetchById(id).orElseThrow(() -> new NotFoundException(domainName + " was not found or has been deleted")); } /** diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/MenuController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/MenuController.java index 4e00d16a1..2ffd2fe69 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/MenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/MenuController.java @@ -41,4 +41,24 @@ public class MenuController { public MenuOutputDTO createBy(@RequestBody @Valid MenuParam menuParam) { return new MenuOutputDTO().convertFrom(menuService.createBy(menuParam)); } + + @PutMapping("{menuId:\\d+}") + @ApiOperation("Updates a menu") + public MenuOutputDTO updateBy(@PathVariable("menuId") Integer menuId, + @RequestBody @Valid MenuParam menuParam) { + // Get the menu + Menu menu = menuService.getById(menuId); + + // Update changed properties of the menu + menuParam.update(menu); + + // Update menu in database + return new MenuOutputDTO().convertFrom(menuService.update(menu)); + } + + @DeleteMapping("{menuId:\\d+}") + @ApiOperation("Deletes a menu") + public MenuOutputDTO deleteBy(@PathVariable("menuId") Integer menuId) { + return new MenuOutputDTO().convertFrom(menuService.removeById(menuId)); + } }