카테고리 순서 변경 API 추가
This commit is contained in:
		| @@ -40,6 +40,17 @@ class CategoryController(private val service: CategoryService) { | ||||
|         ApiResponse.ok(service.modifyCategory(request = request, member = member)) | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/orders") | ||||
|     @PreAuthorize("hasRole('CREATOR')") | ||||
|     fun updateCategoryOrders( | ||||
|         @RequestBody request: UpdateCategoryOrdersRequest, | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? | ||||
|     ) = run { | ||||
|         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") | ||||
|  | ||||
|         ApiResponse.ok(service.updateCategoryOrders(request = request, member = member)) | ||||
|     } | ||||
|  | ||||
|     @DeleteMapping("/{id}") | ||||
|     @PreAuthorize("hasRole('CREATOR')") | ||||
|     fun deleteCategory( | ||||
|   | ||||
| @@ -39,7 +39,11 @@ class CategoryQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : C | ||||
|         return queryFactory | ||||
|             .select(QGetCategoryListResponse(category.id, category.title)) | ||||
|             .from(category) | ||||
|             .where(category.member.id.eq(creatorId).and(category.isActive.isTrue)) | ||||
|             .where( | ||||
|                 category.member.id.eq(creatorId) | ||||
|                     .and(category.isActive.isTrue) | ||||
|             ) | ||||
|             .orderBy(category.orders.asc()) | ||||
|             .fetch() | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -86,6 +86,17 @@ class CategoryService( | ||||
|         categoryContentRepository.deleteByCategoryId(categoryId = categoryId) | ||||
|     } | ||||
|  | ||||
|     @Transactional | ||||
|     fun updateCategoryOrders(request: UpdateCategoryOrdersRequest, member: Member) { | ||||
|         for (index in request.ids.indices) { | ||||
|             val category = repository.findByIdAndMemberId(categoryId = request.ids[index], memberId = member.id!!) | ||||
|  | ||||
|             if (category != null) { | ||||
|                 category.orders = index + 1 | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     fun getCategoryList(creatorId: Long, memberId: Long): List<GetCategoryListResponse> { | ||||
|         val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = creatorId) | ||||
|         if (isBlocked) throw SodaException("잘못된 접근입니다.") | ||||
|   | ||||
| @@ -0,0 +1,3 @@ | ||||
| package kr.co.vividnext.sodalive.content.category | ||||
|  | ||||
| data class UpdateCategoryOrdersRequest(val ids: List<Long>) | ||||
		Reference in New Issue
	
	Block a user