From 015fb3c399bcb3086308d7f48176616269267da6 Mon Sep 17 00:00:00 2001 From: johnniang Date: Tue, 5 Mar 2019 00:00:54 +0800 Subject: [PATCH] Add Post output dtos --- .../halo/model/dto/PostDetailOutputDTO.java | 57 +++++++++++++++++++ .../halo/model/dto/PostSimpleOutputDTO.java | 52 +++++++++++++++++ .../controller/api/ApiJournalController.java | 5 +- 3 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 src/main/java/cc/ryanc/halo/model/dto/PostDetailOutputDTO.java create mode 100644 src/main/java/cc/ryanc/halo/model/dto/PostSimpleOutputDTO.java diff --git a/src/main/java/cc/ryanc/halo/model/dto/PostDetailOutputDTO.java b/src/main/java/cc/ryanc/halo/model/dto/PostDetailOutputDTO.java new file mode 100644 index 000000000..afe3b381e --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/dto/PostDetailOutputDTO.java @@ -0,0 +1,57 @@ +package cc.ryanc.halo.model.dto; + +import cc.ryanc.halo.model.domain.*; +import cc.ryanc.halo.model.dto.base.AbstractOutputConverter; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; +import java.util.List; + +/** + * Post detail output dto. + * + * @author johnniang + */ +public class PostDetailOutputDTO extends AbstractOutputConverter { + + private Long postId; + + private User user; + + private String postTitle; + + private String postType; + + private String postContent; + + private String postUrl; + + private String postSummary; + + private List categories; + + private List tags; + + private List comments; + + private String postThumbnail; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date postDate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date postUpdate; + + private Integer postStatus; + + private Long postViews; + + private Integer allowComment; + + private String postPassword; + + private String customTpl; + + private Integer postPriority; + +} diff --git a/src/main/java/cc/ryanc/halo/model/dto/PostSimpleOutputDTO.java b/src/main/java/cc/ryanc/halo/model/dto/PostSimpleOutputDTO.java new file mode 100644 index 000000000..ef6c5d103 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/dto/PostSimpleOutputDTO.java @@ -0,0 +1,52 @@ +package cc.ryanc.halo.model.dto; + +import cc.ryanc.halo.model.domain.*; +import cc.ryanc.halo.model.dto.base.AbstractOutputConverter; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * Post output dto without markdown and content. + * + * @author johnniang + */ +@Data +public class PostSimpleOutputDTO extends AbstractOutputConverter { + + private Long postId; + + private String postTitle; + + private String postType; + + private String postUrl; + + private String postSummary; + + private List categories; + + private List tags; + + private String postThumbnail; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date postDate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date postUpdate; + + private Integer postStatus; + + private Long postViews; + + private Integer allowComment; + + private String postPassword; + + private String customTpl; + + private Integer postPriority; +} diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiJournalController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiJournalController.java index 7b7b37aa4..67c101dcb 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiJournalController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiJournalController.java @@ -1,6 +1,7 @@ package cc.ryanc.halo.web.controller.api; import cc.ryanc.halo.model.domain.Post; +import cc.ryanc.halo.model.dto.PostDetailOutputDTO; import cc.ryanc.halo.model.params.JournalParam; import cc.ryanc.halo.service.PostService; import org.springframework.http.HttpStatus; @@ -32,11 +33,11 @@ public class ApiJournalController { */ @PostMapping @ResponseStatus(HttpStatus.CREATED) - public Post save(@RequestBody JournalParam journalParam) { + public PostDetailOutputDTO save(@RequestBody JournalParam journalParam) { // TODO need to validate token Post post = journalParam.convertTo(); - return postService.create(post); + return new PostDetailOutputDTO().convertFrom(postService.create(post)); } }