Skip to content

Commit

Permalink
refactor: (#492) 자습실 수정 web request 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
tedsoftj1123 committed May 10, 2023
1 parent daba4b5 commit 5b5fa46
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 113 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ import team.aliens.dms.domain.studyroom.dto.StudentQueryStudyRoomResponse
import team.aliens.dms.domain.studyroom.dto.StudentQueryStudyRoomsResponse
import team.aliens.dms.domain.studyroom.dto.UpdateAvailableTimeWebRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomSeatsRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomSeatsWebRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomTimeSlotRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomTimeSlotWebRequest
import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomWebRequest
import team.aliens.dms.domain.studyroom.dto.UpdateTimeSlotWebRequest
import team.aliens.dms.domain.studyroom.usecase.ApplySeatUseCase
Expand All @@ -53,6 +57,8 @@ import team.aliens.dms.domain.studyroom.usecase.StudentQueryStudyRoomUseCase
import team.aliens.dms.domain.studyroom.usecase.StudentQueryStudyRoomsUseCase
import team.aliens.dms.domain.studyroom.usecase.UnApplySeatUseCase
import team.aliens.dms.domain.studyroom.usecase.UpdateAvailableTimeUseCase
import team.aliens.dms.domain.studyroom.usecase.UpdateStudyRoomSeatsUseCase
import team.aliens.dms.domain.studyroom.usecase.UpdateStudyRoomTimeSlotUseCase
import team.aliens.dms.domain.studyroom.usecase.UpdateStudyRoomUseCase
import team.aliens.dms.domain.studyroom.usecase.UpdateTimeSlotUseCase
import java.util.UUID
Expand Down Expand Up @@ -83,7 +89,9 @@ class StudyRoomWebAdapter(
private val queryTimeSlotsUseCase: QueryTimeSlotsUseCase,
private val createTimeSlotUseCase: CreateTimeSlotUseCase,
private val updateTimeSlotUseCase: UpdateTimeSlotUseCase,
private val removeTimeSlotUseCase: RemoveTimeSlotUseCase
private val removeTimeSlotUseCase: RemoveTimeSlotUseCase,
private val updateStudyRoomSeatsUseCase: UpdateStudyRoomSeatsUseCase,
private val updateStudyRoomTimeSlotUseCase: UpdateStudyRoomTimeSlotUseCase
) {

@GetMapping("/available-time")
Expand Down Expand Up @@ -187,22 +195,46 @@ class StudyRoomWebAdapter(
southDescription = southDescription,
northDescription = northDescription,
availableSex = availableSex.name,
availableGrade = availableGrade,
timeSlotIds = timeSlotIds,
seats = seats.map {
UpdateStudyRoomRequest.SeatRequest(
widthLocation = it.widthLocation,
heightLocation = it.heightLocation,
number = it.number,
typeId = it.typeId,
status = it.status.name
)
}
availableGrade = availableGrade
)
}
)
}

@ResponseStatus(HttpStatus.NO_CONTENT)
@PatchMapping("/{study-room-id}/seats")
fun updateStudyRoomSeats(
@PathVariable("study-room-id") @NotNull studyRoomId: UUID,
@RequestBody @Valid webRequest: UpdateStudyRoomSeatsWebRequest
) {
updateStudyRoomSeatsUseCase.execute(
request = UpdateStudyRoomSeatsRequest(
webRequest.seats.map {
UpdateStudyRoomSeatsRequest.SeatRequest(
widthLocation = it.widthLocation,
heightLocation = it.heightLocation,
number = it.number,
typeId = it.typeId,
status = it.status.name
)
}
),
studyRoomId = studyRoomId
)
}

@ResponseStatus(HttpStatus.NO_CONTENT)
@PatchMapping("/{study-room-id}/time-slot")
fun updateStudyRoomTimeSlot(
@PathVariable("study-room-id") @NotNull studyRoomId: UUID,
@RequestBody @Valid webRequest: UpdateStudyRoomTimeSlotWebRequest
) {
updateStudyRoomTimeSlotUseCase.execute(
request = UpdateStudyRoomTimeSlotRequest(webRequest.timeSlotIds),
studyRoomId = studyRoomId
)
}

@GetMapping("/{study-room-id}/students")
fun studentGetStudyRoom(
@PathVariable("study-room-id") @NotNull studyRoomId: UUID,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package team.aliens.dms.domain.studyroom.dto

import java.util.UUID
import javax.validation.Valid
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

data class UpdateStudyRoomSeatsWebRequest(
@field:Valid
val seats: List<SeatWebRequest>
) {
data class SeatWebRequest(
@field:NotNull
@field:Min(0)
val widthLocation: Int,

@field:NotNull
@field:Min(0)
val heightLocation: Int,

val number: Int?,

val typeId: UUID?,

@field:NotNull
val status: WebSeatStatus
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package team.aliens.dms.domain.studyroom.dto

import java.util.UUID

data class UpdateStudyRoomTimeSlotWebRequest(
val timeSlotIds: List<UUID>
)
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package team.aliens.dms.domain.studyroom.dto

import team.aliens.dms.common.validator.NotNullElements
import java.util.UUID
import javax.validation.Valid
import javax.validation.constraints.Min
import javax.validation.constraints.NotBlank
import javax.validation.constraints.NotNull
Expand Down Expand Up @@ -47,33 +44,6 @@ data class UpdateStudyRoomWebRequest(

@field:NotNull
@field:Min(0)
val availableGrade: Int,
val availableGrade: Int

@field:Size(min = 1)
@field:NotNullElements
val timeSlotIds: List<UUID>,

@field:Valid
val seats: List<SeatRequest>

) {

data class SeatRequest(

@field:NotNull
@field:Min(0)
val widthLocation: Int,

@field:NotNull
@field:Min(0)
val heightLocation: Int,

val number: Int?,

val typeId: UUID?,

@field:NotNull
val status: WebSeatStatus

)
}
)

0 comments on commit 5b5fa46

Please sign in to comment.