Skip to content

Commit e756960

Browse files
authored
Merge pull request #73 from IT-Cotato/refactor/#72-folder-response
Refactor/#72 folder response
2 parents f64aa55 + 7f09ece commit e756960

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

src/main/java/com/finsight/finsight/domain/storage/application/dto/response/FolderResponse.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,28 @@ public record FolderResponse(
66
Long folderId,
77
String folderType,
88
String folderName,
9-
Integer sortOrder
9+
Integer sortOrder,
10+
Long itemCount
1011
) {
12+
// 폴더 생성용 (itemCount 없이)
1113
public static FolderResponse from(FolderEntity entity) {
1214
return new FolderResponse(
1315
entity.getFolderId(),
1416
entity.getFolderType().name(),
1517
entity.getFolderName(),
16-
entity.getSortOrder()
18+
entity.getSortOrder(),
19+
null
20+
);
21+
}
22+
23+
// 폴더 조회/수정용 (itemCount 포함)
24+
public static FolderResponse from(FolderEntity entity, Long itemCount) {
25+
return new FolderResponse(
26+
entity.getFolderId(),
27+
entity.getFolderType().name(),
28+
entity.getFolderName(),
29+
entity.getSortOrder(),
30+
itemCount
1731
);
1832
}
1933
}

src/main/java/com/finsight/finsight/domain/storage/domain/service/FolderService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.finsight.finsight.domain.storage.exception.code.StorageErrorCode;
1111
import com.finsight.finsight.domain.storage.persistence.entity.FolderEntity;
1212
import com.finsight.finsight.domain.storage.persistence.entity.FolderType;
13+
import com.finsight.finsight.domain.storage.persistence.repository.FolderItemRepository;
1314
import com.finsight.finsight.domain.storage.persistence.repository.FolderRepository;
1415
import com.finsight.finsight.domain.user.persistence.entity.UserEntity;
1516
import com.finsight.finsight.domain.user.persistence.repository.UserRepository;
@@ -27,13 +28,17 @@ public class FolderService {
2728
private static final int MAX_FOLDER_COUNT = 10;
2829

2930
private final FolderRepository folderRepository;
31+
private final FolderItemRepository folderItemRepository;
3032
private final UserRepository userRepository;
3133

3234
// 폴더 목록 조회
3335
public List<FolderResponse> getFolders(Long userId, FolderType folderType) {
3436
List<FolderEntity> folders = folderRepository.findByUserUserIdAndFolderTypeOrderBySortOrderAsc(userId, folderType);
3537
return folders.stream()
36-
.map(FolderResponse::from)
38+
.map(folder -> {
39+
long itemCount = folderItemRepository.countByFolderFolderId(folder.getFolderId());
40+
return FolderResponse.from(folder, itemCount);
41+
})
3742
.toList();
3843
}
3944

@@ -88,7 +93,8 @@ public FolderResponse updateFolder(Long userId, Long folderId, UpdateFolderReque
8893
}
8994

9095
folder.updateFolderName(request.folderName());
91-
return FolderResponse.from(folder);
96+
long itemCount = folderItemRepository.countByFolderFolderId(folder.getFolderId());
97+
return FolderResponse.from(folder, itemCount);
9298
}
9399

94100
// 폴더 삭제

src/main/java/com/finsight/finsight/domain/storage/persistence/repository/FolderItemRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717

1818
public interface FolderItemRepository extends JpaRepository<FolderItemEntity, Long> {
1919

20+
// 특정 폴더의 아이템 개수 조회
21+
long countByFolderFolderId(Long folderId);
22+
2023
// 특정 폴더의 아이템 목록 조회 (최신순)
2124
Page<FolderItemEntity> findByFolderFolderIdOrderBySavedAtDesc(Long folderId, Pageable pageable);
2225

0 commit comments

Comments
 (0)