Skip to content

Commit e8264b0

Browse files
authored
Merge pull request #308 from DevKor-github/feat/freeboard
feat(): 자유게시판 목록 조회 응답에 isMine 필드 추가
2 parents be31c05 + ddafd64 commit e8264b0

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

src/main/java/org/devkor/apu/saerok_server/domain/freeboard/api/FreeBoardPostController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public CreateFreeBoardPostResponse createPost(
7676
}
7777
)
7878
public GetFreeBoardPostsResponse getPosts(
79+
@AuthenticationPrincipal UserPrincipal userPrincipal,
7980
@Parameter(description = "페이지 번호 (1부터 시작)", example = "1") @RequestParam(required = false) Integer page,
8081
@Parameter(description = "페이지 크기", example = "20") @RequestParam(required = false) Integer size
8182
) {
@@ -84,7 +85,8 @@ public GetFreeBoardPostsResponse getPosts(
8485
throw new BadRequestException("page와 size 값이 유효하지 않아요.");
8586
}
8687

87-
return postQueryService.getPosts(command);
88+
Long userId = userPrincipal == null ? null : userPrincipal.getId();
89+
return postQueryService.getPosts(userId, command);
8890
}
8991

9092
/* 게시글 상세 조회 */

src/main/java/org/devkor/apu/saerok_server/domain/freeboard/api/dto/response/GetFreeBoardPostsResponse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public record Item(
2727
String content,
2828
@Schema(description = "댓글 수", example = "5", requiredMode = Schema.RequiredMode.REQUIRED)
2929
long commentCount,
30+
@Schema(description = "내가 작성한 게시글 여부 (비로그인 시 false)", example = "false", requiredMode = Schema.RequiredMode.REQUIRED)
31+
boolean isMine,
3032
@Schema(description = "작성 시각", example = "2025-07-05T03:10:00", requiredMode = Schema.RequiredMode.REQUIRED)
3133
LocalDateTime createdAt
3234
) {

src/main/java/org/devkor/apu/saerok_server/domain/freeboard/application/FreeBoardPostQueryService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class FreeBoardPostQueryService {
2929
private final UserProfileImageUrlService userProfileImageUrlService;
3030

3131
/* 게시글 목록 조회 */
32-
public GetFreeBoardPostsResponse getPosts(FreeBoardPostQueryCommand command) {
32+
public GetFreeBoardPostsResponse getPosts(Long userId, FreeBoardPostQueryCommand command) {
3333
List<FreeBoardPost> posts = postRepository.findAll(command);
3434

3535
Boolean hasNext = null;
@@ -50,6 +50,7 @@ public GetFreeBoardPostsResponse getPosts(FreeBoardPostQueryCommand command) {
5050
List<GetFreeBoardPostsResponse.Item> items = posts.stream()
5151
.map(post -> {
5252
Long authorId = post.getUser().getId();
53+
boolean isMine = userId != null && userId.equals(authorId);
5354
return new GetFreeBoardPostsResponse.Item(
5455
post.getId(),
5556
authorId,
@@ -58,6 +59,7 @@ public GetFreeBoardPostsResponse getPosts(FreeBoardPostQueryCommand command) {
5859
thumbnailProfileImageUrls.get(authorId),
5960
post.getContent(),
6061
commentCounts.getOrDefault(post.getId(), 0L),
62+
isMine,
6163
OffsetDateTimeLocalizer.toSeoulLocalDateTime(post.getCreatedAt())
6264
);
6365
})

0 commit comments

Comments
 (0)