Skip to content

Commit 8896357

Browse files
authored
Merge pull request #98 from TU-NEBULA/refactor/SCRUM-240
SCRUM-240 : 기본 카테고리 설정 및 전체 조회 수정
2 parents 2b6d592 + 0a2e298 commit 8896357

3 files changed

Lines changed: 23 additions & 17 deletions

File tree

src/main/java/com/team_nebula/nebula/domain/category/repository/CategoryRepository.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,20 @@ public interface CategoryRepository extends Neo4jRepository<Category, UUID> {
1818
MATCH (u:UserNode {userId: $userId})-[:GENERATED]->(c:Category)
1919
WHERE c.isDeletedStatus = false OR c.isDeletedStatus IS NULL
2020
OPTIONAL MATCH (c)<-[:BELONGS_TO]-(s:Star)
21-
RETURN c.id AS id, c.name AS name, COUNT(s) AS includedStarCnt
21+
WITH c, COUNT(s) AS includedStarCnt
22+
RETURN c.id AS id, c.name AS name, includedStarCnt
23+
ORDER BY c.created_at DESC
2224
""")
2325
List<GetCategoryOneResponseDTO> findUserCategoriesWithStarCount(@Param("userId") Long userId);
2426

25-
@Query("MATCH (c:Category) WHERE c.name = $name RETURN c")
26-
Optional<Category> findByName(String name);
27+
28+
@Query("""
29+
MATCH (u:UserNode {userId: $userId})-[:GENERATED]->(c:Category {name: $name})
30+
WHERE c.isDeletedStatus = false OR c.isDeletedStatus IS NULL
31+
RETURN c
32+
LIMIT 1
33+
""")
34+
Optional<Category> findByNameAndUserId(String name, Long userId);
2735

2836
@Query("""
2937
MATCH (c:Category)<-[:BELONGS_TO]-(s:Star{id: $starId})
@@ -41,5 +49,4 @@ RETURN c.id AS id, c.name AS name, COUNT(s) AS includedStarCnt
4149
""")
4250
String findNameByStarAndRemoveRelation(@Param("starId") UUID starId, @Param("categoryName") String categoryName);
4351

44-
4552
}

src/main/java/com/team_nebula/nebula/domain/category/service/CategoryCommandServiceImpl.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,20 @@ public CreateCategoryResponseDTO createCategory(CreateCategoryRequestDTO request
5959

6060
@Override
6161
public void linkStarToCategory(Star star, String categoryName, Long userId){
62-
Category category = categoryRepository.findByName(categoryName)
62+
Category category = categoryRepository.findByNameAndUserId(categoryName, userId)
6363
.orElseGet(() -> {
64-
if (categoryName.equalsIgnoreCase("basic")) {
65-
Category basicCategory = Category.builder()
66-
.name("basic")
67-
.build();
68-
69-
70-
return categoryRepository.save(basicCategory);
71-
} else {
72-
throw new GeneralException(ErrorStatus._CATEGORY_NOT_FOUND);
73-
}
64+
Category newCategory = Category.builder()
65+
.name(categoryName)
66+
.build();
67+
categoryRepository.save(newCategory);
68+
69+
UserNode userNode = userNodeRepository.findById(userId)
70+
.orElseThrow(() -> new GeneralException(ErrorStatus._USER_NOT_FOUND));
71+
userNode.getCategorySet().add(newCategory);
72+
userNodeRepository.save(userNode);
73+
74+
return newCategory;
7475
});
75-
7676
category.getStars().add(star);
7777
categoryRepository.save(category);
7878
}

src/main/java/com/team_nebula/nebula/domain/star/service/StarCommandServiceImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ public CreateStarResponseDTO createStar(Long userId, CreateStarRequestDTO reques
274274
userNode.getStars().add(savedStar);
275275
userNodeRepository.save(userNode);
276276

277-
// 카테고리 생성 및 유저-카테고리 관게설정
278277
String categoryName = Optional.ofNullable(requestDTO.getCategoryName())
279278
.map(String::trim)
280279
.filter(name -> !name.isEmpty())

0 commit comments

Comments
 (0)