카테고리 순서 변경 API 추가
This commit is contained in:
parent
e3cf7fbfa0
commit
a6a279837d
|
@ -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>)
|
Loading…
Reference in New Issue