From e8a9498ea4c88497b3d3e5c0755e7d09de2fa8a3 Mon Sep 17 00:00:00 2001 From: johnniang Date: Mon, 25 Mar 2019 22:14:34 +0800 Subject: [PATCH] Complete tag update api --- .../ryanc/halo/listener/StartedListener.java | 6 ++-- .../cc/ryanc/halo/model/params/TagParam.java | 6 ++-- .../controller/admin/api/TagController.java | 32 +++++++++++++------ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/listener/StartedListener.java b/src/main/java/cc/ryanc/halo/listener/StartedListener.java index 01f9a6042..5727b2965 100644 --- a/src/main/java/cc/ryanc/halo/listener/StartedListener.java +++ b/src/main/java/cc/ryanc/halo/listener/StartedListener.java @@ -88,11 +88,11 @@ public class StartedListener implements ApplicationListener { public Tag convertTo() { if (StringUtils.isBlank(slugName)) { // Handle slug name - slugName = SlugUtils.slugify(name); + slugName = URLUtil.normalize(name); } slugName = HaloUtils.initializeUrlIfBlank(slugName); diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java index 3342f1cf5..80ca2e8f2 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java @@ -58,24 +58,38 @@ public class TagController { /** * Get tag by id * - * @param id id + * @param tagId tag id * @return TagOutputDTO */ - @GetMapping("{id:\\d+}") + @GetMapping("{tagId:\\d+}") @ApiOperation("Get tag detail by id") - public TagOutputDTO getBy(@PathVariable("id") Integer id) { - return new TagOutputDTO().convertFrom(tagService.getById(id)); + public TagOutputDTO getBy(@PathVariable("tagId") Integer tagId) { + return new TagOutputDTO().convertFrom(tagService.getById(tagId)); + } + + @PutMapping("{tagId:\\d+}") + @ApiOperation("Updates tag") + public TagOutputDTO updateBy(@PathVariable("tagId") Integer tagId, + @Valid @RequestBody TagParam tagParam) { + // Get old tag + Tag tag = tagService.getById(tagId); + + // Update tag + tagParam.update(tag); + + // Update tag + return new TagOutputDTO().convertFrom(tagService.update(tag)); } /** * Delete tag by id. * - * @param id id + * @param tagId tag id */ - @DeleteMapping("{id:\\d+}") + @DeleteMapping("{tagId:\\d+}") @ApiOperation("Delete tag by id") - public void deletePermanently(@PathVariable("id") Integer id) { - tagService.removeById(id); - postTagService.removeByTagId(id); + public void deletePermanently(@PathVariable("tagId") Integer tagId) { + tagService.removeById(tagId); + postTagService.removeByTagId(tagId); } }