Skip to content

Commit 49bff8b

Browse files
authored
refactor: community-board 조회 기능 봉사자 한정 리팩토링 (#64)
* feat(center): 커뮤니티에서 센터 프로필 조회 기능 및 테스트 삭제 * feat(volunteer): 커뮤니티에서 봉사자 프로필 조회 기능 및 테스트 삭제 * test(community): 커뮤니티 게시글 리스트 조회 테스트 수정 * feat(community): 커뮤니티 게시글 리스트 조회 반환 class 생성 * feat(community): 커뮤니티 게시글 리스트 조회 반환값 및 queryDSL 변경 * feat(community): 커뮤니티 게시글 상세 조회 responseDto 수정 * feat(community): 커뮤니티 게시글 query service 수정 * chore: 불필요한 import 제거 * chore: 불필요한 import 제거 * fix: CoummunityBoardView 이름 변경 및 코드 리뷰 반영 - entity -> dto 메서드 추출 - CommunityBoardView record로 변경 - CommunityBoard 조회 쿼리 추출
1 parent 3b5dce2 commit 49bff8b

23 files changed

+142
-348
lines changed

src/main/java/com/somemore/center/dto/response/CenterForCommunityResponseDto.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/com/somemore/center/repository/CenterRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,5 @@ default boolean doesNotExistById(UUID id) {
1414
return !existsById(id);
1515
}
1616
Optional<Center> findCenterById(UUID id);
17-
String findNameById(UUID id);
1817
void deleteAllInBatch();
1918
}

src/main/java/com/somemore/center/repository/CenterRepositoryImpl.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.somemore.center.repository;
22

3-
import com.querydsl.jpa.impl.JPAQueryFactory;
43
import com.somemore.center.domain.Center;
5-
import com.somemore.center.domain.QCenter;
64
import lombok.RequiredArgsConstructor;
75
import org.springframework.stereotype.Repository;
86

@@ -14,7 +12,6 @@
1412
public class CenterRepositoryImpl implements CenterRepository {
1513

1614
private final CenterJpaRepository centerJpaRepository;
17-
private final JPAQueryFactory queryFactory;
1815

1916
@Override
2017
public Center save(Center center) {
@@ -31,17 +28,6 @@ public Optional<Center> findCenterById(UUID id) {
3128
return centerJpaRepository.findCenterById(id);
3229
}
3330

34-
@Override
35-
public String findNameById(UUID id) {
36-
QCenter center = QCenter.center;
37-
38-
return queryFactory
39-
.select(center.name)
40-
.from(center)
41-
.where(center.id.eq(id))
42-
.fetchOne();
43-
}
44-
4531
@Override
4632
public void deleteAllInBatch() {
4733
centerJpaRepository.deleteAllInBatch();

src/main/java/com/somemore/center/service/query/CenterQueryService.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.somemore.center.service.query;
22

33
import com.somemore.center.domain.Center;
4-
import com.somemore.center.dto.response.CenterForCommunityResponseDto;
54
import com.somemore.center.dto.response.CenterProfileResponseDto;
65
import com.somemore.center.dto.response.PreferItemResponseDto;
76
import com.somemore.center.repository.CenterRepository;
@@ -45,15 +44,4 @@ private Center getCenterById(UUID centerId) {
4544
return centerRepository.findCenterById(centerId)
4645
.orElseThrow(() -> new BadRequestException(NOT_EXISTS_CENTER.getMessage()));
4746
}
48-
49-
@Override
50-
public String getNameById(UUID id) {
51-
return centerRepository.findNameById(id);
52-
}
53-
54-
@Override
55-
public CenterForCommunityResponseDto getCenterDetailForCommunity(UUID id) {
56-
Center center = getCenterById(id);
57-
return CenterForCommunityResponseDto.fromEntity(center);
58-
}
5947
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.somemore.center.usecase.query;
22

3-
import com.somemore.center.dto.response.CenterForCommunityResponseDto;
43
import com.somemore.center.dto.response.CenterProfileResponseDto;
54

65
import java.util.UUID;
@@ -9,6 +8,4 @@ public interface CenterQueryUseCase {
98

109
CenterProfileResponseDto getCenterProfileByCenterId(UUID centerId);
1110
void validateCenterExists(UUID centerId);
12-
String getNameById(UUID id);
13-
CenterForCommunityResponseDto getCenterDetailForCommunity(UUID id);
1411
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.somemore.community.domain;
2+
3+
public record CommunityBoardView(
4+
CommunityBoard communityBoard,
5+
String writerNickname) {
6+
}

src/main/java/com/somemore/community/dto/response/CommunityBoardGetDetailResponseDto.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,27 @@
55
import com.somemore.community.domain.CommunityBoard;
66

77
import java.time.LocalDateTime;
8+
import java.util.UUID;
89

910
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
1011
public record CommunityBoardGetDetailResponseDto(
1112
Long id,
13+
UUID writerId,
1214
String title,
1315
String content,
1416
String imageUrl,
1517
LocalDateTime createdAt,
16-
LocalDateTime updatedAt,
17-
WriterDetailDto writerDetailDto
18+
LocalDateTime updatedAt
1819
) {
19-
public static CommunityBoardGetDetailResponseDto fromEntity(CommunityBoard board, WriterDetailDto writer) {
20+
public static CommunityBoardGetDetailResponseDto fromEntity(CommunityBoard board) {
2021
return new CommunityBoardGetDetailResponseDto(
2122
board.getId(),
23+
board.getWriterId(),
2224
board.getTitle(),
2325
board.getContent(),
2426
board.getImgUrl(),
2527
board.getCreatedAt(),
26-
board.getUpdatedAt(),
27-
writer
28+
board.getUpdatedAt()
2829
);
2930
}
3031
}

src/main/java/com/somemore/community/dto/response/CommunityBoardGetResponseDto.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy;
44
import com.fasterxml.jackson.databind.annotation.JsonNaming;
5-
import com.somemore.community.domain.CommunityBoard;
5+
import com.somemore.community.domain.CommunityBoardView;
66

77
import java.time.LocalDateTime;
88

@@ -13,12 +13,12 @@ public record CommunityBoardGetResponseDto(
1313
String writerNickname,
1414
LocalDateTime createdAt
1515
) {
16-
public static CommunityBoardGetResponseDto fromEntity(CommunityBoard board, String writerNickname) {
16+
public static CommunityBoardGetResponseDto fromEntity(CommunityBoardView board) {
1717
return new CommunityBoardGetResponseDto(
18-
board.getId(),
19-
board.getTitle(),
20-
writerNickname,
21-
board.getCreatedAt()
18+
board.communityBoard().getId(),
19+
board.communityBoard().getTitle(),
20+
board.writerNickname(),
21+
board.communityBoard().getCreatedAt()
2222
);
2323
}
2424
}

src/main/java/com/somemore/community/dto/response/WriterDetailDto.java

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.somemore.community.repository;
22

33
import com.somemore.community.domain.CommunityBoard;
4+
import com.somemore.community.domain.CommunityBoardView;
45

56
import java.util.List;
67
import java.util.Optional;
@@ -9,7 +10,7 @@
910
public interface CommunityBoardRepository {
1011
CommunityBoard save(CommunityBoard communityBoard);
1112
Optional<CommunityBoard> findById(Long id);
12-
List<CommunityBoard> getCommunityBoards();
13-
List<CommunityBoard> findByWriterId(UUID writerId);
13+
List<CommunityBoardView> getCommunityBoards();
14+
List<CommunityBoardView> findByWriterId(UUID writerId);
1415
void deleteAllInBatch();
1516
}

0 commit comments

Comments
 (0)