Auto-assign room image order on upload
All checks were successful
build-and-deploy / build-deploy (push) Successful in 27s
All checks were successful
build-and-deploy / build-deploy (push) Successful in 27s
This commit is contained in:
@@ -58,8 +58,6 @@ class RoomImages(
|
||||
@PathVariable roomId: UUID,
|
||||
@AuthenticationPrincipal principal: MyPrincipal?,
|
||||
@RequestParam("file") file: MultipartFile,
|
||||
@RequestParam(required = false) roomSortOrder: Int?,
|
||||
@RequestParam(required = false) roomTypeSortOrder: Int?,
|
||||
@RequestParam(required = false) tags: List<String>?
|
||||
): RoomImageResponse {
|
||||
requirePrincipal(principal)
|
||||
@@ -76,6 +74,8 @@ class RoomImages(
|
||||
throw ResponseStatusException(HttpStatus.BAD_REQUEST, ex.message ?: "Invalid image")
|
||||
}
|
||||
|
||||
val nextRoomSortOrder = roomImageRepo.findMaxRoomSortOrder(roomId) + 1
|
||||
val nextRoomTypeSortOrder = roomImageRepo.findMaxRoomTypeSortOrder(room.roomType.code) + 1
|
||||
val image = RoomImage(
|
||||
property = room.property,
|
||||
room = room,
|
||||
@@ -85,8 +85,8 @@ class RoomImages(
|
||||
sizeBytes = stored.sizeBytes,
|
||||
roomTypeCode = room.roomType.code,
|
||||
tags = tags?.toMutableSet() ?: mutableSetOf(),
|
||||
roomSortOrder = roomSortOrder ?: 0,
|
||||
roomTypeSortOrder = roomTypeSortOrder ?: 0
|
||||
roomSortOrder = nextRoomSortOrder,
|
||||
roomTypeSortOrder = nextRoomTypeSortOrder
|
||||
)
|
||||
return roomImageRepo.save(image).toResponse(publicBaseUrl)
|
||||
}
|
||||
|
||||
@@ -17,4 +17,10 @@ interface RoomImageRepo : JpaRepository<RoomImage, UUID> {
|
||||
)
|
||||
fun findByRoomIdOrdered(@Param("roomId") roomId: UUID): List<RoomImage>
|
||||
fun findByIdAndRoomIdAndPropertyId(id: UUID, roomId: UUID, propertyId: UUID): RoomImage?
|
||||
|
||||
@Query("select coalesce(max(ri.roomSortOrder), 0) from RoomImage ri where ri.room.id = :roomId")
|
||||
fun findMaxRoomSortOrder(@Param("roomId") roomId: UUID): Int
|
||||
|
||||
@Query("select coalesce(max(ri.roomTypeSortOrder), 0) from RoomImage ri where ri.roomTypeCode = :roomTypeCode")
|
||||
fun findMaxRoomTypeSortOrder(@Param("roomTypeCode") roomTypeCode: String): Int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user