Merge pull request #93 from nagisa77/codex/include-full-author-info-in-api-responses

Add author details in post and comment APIs
This commit is contained in:
Tim
2025-07-07 01:27:39 +08:00
committed by GitHub
2 changed files with 36 additions and 6 deletions

View File

@@ -70,7 +70,15 @@ public class CommentController {
dto.setId(comment.getId()); dto.setId(comment.getId());
dto.setContent(comment.getContent()); dto.setContent(comment.getContent());
dto.setCreatedAt(comment.getCreatedAt()); dto.setCreatedAt(comment.getCreatedAt());
dto.setAuthor(comment.getAuthor().getUsername()); dto.setAuthor(toAuthorDto(comment.getAuthor()));
return dto;
}
private AuthorDto toAuthorDto(com.openisle.model.User user) {
AuthorDto dto = new AuthorDto();
dto.setId(user.getId());
dto.setUsername(user.getUsername());
dto.setAvatar(user.getAvatar());
return dto; return dto;
} }
@@ -85,7 +93,14 @@ public class CommentController {
private Long id; private Long id;
private String content; private String content;
private LocalDateTime createdAt; private LocalDateTime createdAt;
private String author; private AuthorDto author;
private List<CommentDto> replies; private List<CommentDto> replies;
} }
@Data
private static class AuthorDto {
private Long id;
private String username;
private String avatar;
}
} }

View File

@@ -83,7 +83,7 @@ public class PostController {
dto.setTitle(post.getTitle()); dto.setTitle(post.getTitle());
dto.setContent(post.getContent()); dto.setContent(post.getContent());
dto.setCreatedAt(post.getCreatedAt()); dto.setCreatedAt(post.getCreatedAt());
dto.setAuthor(post.getAuthor().getUsername()); dto.setAuthor(toAuthorDto(post.getAuthor()));
dto.setCategory(toCategoryDto(post.getCategory())); dto.setCategory(toCategoryDto(post.getCategory()));
dto.setTags(post.getTags().stream().map(this::toTagDto).collect(Collectors.toList())); dto.setTags(post.getTags().stream().map(this::toTagDto).collect(Collectors.toList()));
dto.setViews(post.getViews()); dto.setViews(post.getViews());
@@ -124,7 +124,7 @@ public class PostController {
dto.setId(comment.getId()); dto.setId(comment.getId());
dto.setContent(comment.getContent()); dto.setContent(comment.getContent());
dto.setCreatedAt(comment.getCreatedAt()); dto.setCreatedAt(comment.getCreatedAt());
dto.setAuthor(comment.getAuthor().getUsername()); dto.setAuthor(toAuthorDto(comment.getAuthor()));
return dto; return dto;
} }
@@ -162,6 +162,14 @@ public class PostController {
return dto; return dto;
} }
private AuthorDto toAuthorDto(com.openisle.model.User user) {
AuthorDto dto = new AuthorDto();
dto.setId(user.getId());
dto.setUsername(user.getUsername());
dto.setAvatar(user.getAvatar());
return dto;
}
@Data @Data
private static class PostRequest { private static class PostRequest {
private Long categoryId; private Long categoryId;
@@ -177,7 +185,7 @@ public class PostController {
private String title; private String title;
private String content; private String content;
private LocalDateTime createdAt; private LocalDateTime createdAt;
private String author; private AuthorDto author;
private CategoryDto category; private CategoryDto category;
private java.util.List<TagDto> tags; private java.util.List<TagDto> tags;
private long views; private long views;
@@ -203,12 +211,19 @@ public class PostController {
private String smallIcon; private String smallIcon;
} }
@Data
private static class AuthorDto {
private Long id;
private String username;
private String avatar;
}
@Data @Data
private static class CommentDto { private static class CommentDto {
private Long id; private Long id;
private String content; private String content;
private LocalDateTime createdAt; private LocalDateTime createdAt;
private String author; private AuthorDto author;
private List<CommentDto> replies; private List<CommentDto> replies;
private List<ReactionDto> reactions; private List<ReactionDto> reactions;
} }