add see update
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.android.trisolarisserver.controller
|
||||
|
||||
import com.android.trisolarisserver.component.PropertyAccess
|
||||
import com.android.trisolarisserver.component.RoomBoardEvents
|
||||
import com.android.trisolarisserver.controller.dto.RoomAvailabilityRangeResponse
|
||||
import com.android.trisolarisserver.controller.dto.RoomAvailabilityResponse
|
||||
import com.android.trisolarisserver.controller.dto.RoomBoardResponse
|
||||
@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.ResponseStatus
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
import org.springframework.web.server.ResponseStatusException
|
||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
import java.util.UUID
|
||||
@@ -38,7 +40,8 @@ class Rooms(
|
||||
private val roomStayRepo: RoomStayRepo,
|
||||
private val propertyRepo: PropertyRepo,
|
||||
private val roomTypeRepo: RoomTypeRepo,
|
||||
private val propertyUserRepo: PropertyUserRepo
|
||||
private val propertyUserRepo: PropertyUserRepo,
|
||||
private val roomBoardEvents: RoomBoardEvents
|
||||
) {
|
||||
|
||||
@GetMapping
|
||||
@@ -88,6 +91,16 @@ class Rooms(
|
||||
return if (isAgentOnly(roles)) mapped.filter { it.status == RoomBoardStatus.FREE } else mapped
|
||||
}
|
||||
|
||||
@GetMapping("/board/stream")
|
||||
fun roomBoardStream(
|
||||
@PathVariable propertyId: UUID,
|
||||
@AuthenticationPrincipal principal: MyPrincipal?
|
||||
): SseEmitter {
|
||||
requirePrincipal(principal)
|
||||
propertyAccess.requireMember(propertyId, principal!!.userId)
|
||||
return roomBoardEvents.subscribe(propertyId)
|
||||
}
|
||||
|
||||
@GetMapping("/availability")
|
||||
fun roomAvailability(
|
||||
@PathVariable propertyId: UUID,
|
||||
@@ -177,7 +190,9 @@ class Rooms(
|
||||
notes = request.notes
|
||||
)
|
||||
|
||||
return roomRepo.save(room).toRoomResponse()
|
||||
val saved = roomRepo.save(room).toRoomResponse()
|
||||
roomBoardEvents.emit(propertyId)
|
||||
return saved
|
||||
}
|
||||
|
||||
@PutMapping("/{roomId}")
|
||||
@@ -208,7 +223,9 @@ class Rooms(
|
||||
room.maintenance = request.maintenance
|
||||
room.notes = request.notes
|
||||
|
||||
return roomRepo.save(room).toRoomResponse()
|
||||
val saved = roomRepo.save(room).toRoomResponse()
|
||||
roomBoardEvents.emit(propertyId)
|
||||
return saved
|
||||
}
|
||||
|
||||
private fun requirePrincipal(principal: MyPrincipal?) {
|
||||
|
||||
Reference in New Issue
Block a user