mirror of https://github.com/halo-dev/halo
Complete journal comment list api
parent
ef2c2b2759
commit
c9bfd11cd5
|
@ -2,7 +2,10 @@ package run.halo.app.controller.admin.api;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.domain.Sort;
|
||||||
|
import org.springframework.data.web.SortDefault;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import run.halo.app.model.dto.BaseCommentDTO;
|
import run.halo.app.model.dto.BaseCommentDTO;
|
||||||
import run.halo.app.model.dto.JournalDTO;
|
import run.halo.app.model.dto.JournalDTO;
|
||||||
|
@ -11,12 +14,17 @@ import run.halo.app.model.entity.Journal;
|
||||||
import run.halo.app.model.entity.JournalComment;
|
import run.halo.app.model.entity.JournalComment;
|
||||||
import run.halo.app.model.params.JournalCommentParam;
|
import run.halo.app.model.params.JournalCommentParam;
|
||||||
import run.halo.app.model.params.JournalParam;
|
import run.halo.app.model.params.JournalParam;
|
||||||
|
import run.halo.app.model.vo.BaseCommentVO;
|
||||||
|
import run.halo.app.model.vo.BaseCommentWithParentVO;
|
||||||
import run.halo.app.service.JournalCommentService;
|
import run.halo.app.service.JournalCommentService;
|
||||||
import run.halo.app.service.JournalService;
|
import run.halo.app.service.JournalService;
|
||||||
|
import run.halo.app.service.OptionService;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.springframework.data.domain.Sort.Direction.DESC;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Journal controller.
|
* Journal controller.
|
||||||
*
|
*
|
||||||
|
@ -31,10 +39,14 @@ public class JournalController {
|
||||||
|
|
||||||
private final JournalCommentService journalCommentService;
|
private final JournalCommentService journalCommentService;
|
||||||
|
|
||||||
|
private final OptionService optionService;
|
||||||
|
|
||||||
public JournalController(JournalService journalService,
|
public JournalController(JournalService journalService,
|
||||||
JournalCommentService journalCommentService) {
|
JournalCommentService journalCommentService,
|
||||||
|
OptionService optionService) {
|
||||||
this.journalService = journalService;
|
this.journalService = journalService;
|
||||||
this.journalCommentService = journalCommentService;
|
this.journalCommentService = journalCommentService;
|
||||||
|
this.optionService = optionService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
|
@ -64,4 +76,20 @@ public class JournalController {
|
||||||
JournalComment journalComment = journalCommentService.createBy(journalCommentParam);
|
JournalComment journalComment = journalCommentService.createBy(journalCommentParam);
|
||||||
return journalCommentService.convertTo(journalComment);
|
return journalCommentService.convertTo(journalComment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("{journalId:\\d+}/comments/tree_view")
|
||||||
|
@ApiOperation("Lists comments with tree view")
|
||||||
|
public Page<BaseCommentVO> listCommentTree(@PathVariable("journalId") Integer journalId,
|
||||||
|
@RequestParam(name = "page", required = false, defaultValue = "0") int page,
|
||||||
|
@SortDefault(sort = "createTime", direction = DESC) Sort sort) {
|
||||||
|
return journalCommentService.pageVosBy(journalId, PageRequest.of(page, optionService.getCommentPageSize(), sort));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("{journalId:\\d+}/comments/list_view")
|
||||||
|
@ApiOperation("Lists comment with list view")
|
||||||
|
public Page<BaseCommentWithParentVO> listComments(@PathVariable("journalId") Integer journalId,
|
||||||
|
@RequestParam(name = "page", required = false, defaultValue = "0") int page,
|
||||||
|
@SortDefault(sort = "createTime", direction = DESC) Sort sort) {
|
||||||
|
return journalCommentService.pageWithParentVoBy(journalId, PageRequest.of(page, optionService.getCommentPageSize(), sort));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package run.halo.app.controller.admin;
|
package run.halo.app.controller.admin.api;
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
@ -1,18 +0,0 @@
|
||||||
package run.halo.app.model.dto;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Comment output dto.
|
|
||||||
*
|
|
||||||
* @author johnniang
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Deprecated
|
|
||||||
public class CommentDTO extends BaseCommentDTO {
|
|
||||||
|
|
||||||
}
|
|
|
@ -22,7 +22,7 @@ public interface InputConverter<DOMAIN> {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
default DOMAIN convertTo() {
|
default DOMAIN convertTo() {
|
||||||
// Get parameterized type
|
// Get parameterized type
|
||||||
ParameterizedType currentType = getParameterizedType();
|
ParameterizedType currentType = parameterizedType();
|
||||||
|
|
||||||
// Assert not equal
|
// Assert not equal
|
||||||
Objects.requireNonNull(currentType, "Cannot fetch actual type because parameterized type is null");
|
Objects.requireNonNull(currentType, "Cannot fetch actual type because parameterized type is null");
|
||||||
|
@ -47,7 +47,7 @@ public interface InputConverter<DOMAIN> {
|
||||||
* @return parameterized type or null
|
* @return parameterized type or null
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
default ParameterizedType getParameterizedType() {
|
default ParameterizedType parameterizedType() {
|
||||||
return ReflectionUtils.getParameterizedType(InputConverter.class, this.getClass());
|
return ReflectionUtils.getParameterizedType(InputConverter.class, this.getClass());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ public abstract class BaseCommentParam<COMMENT> implements InputConverter<COMMEN
|
||||||
private Long parentId = 0L;
|
private Long parentId = 0L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ParameterizedType getParameterizedType() {
|
public ParameterizedType parameterizedType() {
|
||||||
return ReflectionUtils.getParameterizedTypeBySuperClass(BaseCommentParam.class, this.getClass());
|
return ReflectionUtils.getParameterizedTypeBySuperClass(BaseCommentParam.class, this.getClass());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue