카테고리 순서 변경 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))
|
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}")
|
@DeleteMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('CREATOR')")
|
@PreAuthorize("hasRole('CREATOR')")
|
||||||
fun deleteCategory(
|
fun deleteCategory(
|
||||||
|
|
|
@ -39,7 +39,11 @@ class CategoryQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : C
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(QGetCategoryListResponse(category.id, category.title))
|
.select(QGetCategoryListResponse(category.id, category.title))
|
||||||
.from(category)
|
.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()
|
.fetch()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,17 @@ class CategoryService(
|
||||||
categoryContentRepository.deleteByCategoryId(categoryId = categoryId)
|
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> {
|
fun getCategoryList(creatorId: Long, memberId: Long): List<GetCategoryListResponse> {
|
||||||
val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = creatorId)
|
val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = creatorId)
|
||||||
if (isBlocked) throw SodaException("잘못된 접근입니다.")
|
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