From 2a8c06ea662308a2e438d4f77bf23638ad8dea8c Mon Sep 17 00:00:00 2001 From: tedsoftj1123 Date: Wed, 10 May 2023 11:40:36 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20(#492)=20usecase=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../studyroom/dto/UpdateStudyRoomRequest.kt | 32 ++++++++++++++++++ .../dto/UpdateStudyRoomSeatsRequest.kt | 33 +++++++++++++++++++ .../dto/UpdateStudyRoomTimeSlotRequest.kt | 16 +++++++++ .../usecase/CreateStudyRoomUseCase.kt | 2 +- .../usecase/UpdateStudyRoomSeatsUseCase.kt | 27 +++++++++++++++ .../usecase/UpdateStudyRoomTimeSlotUseCase.kt | 21 ++++++++++++ .../usecase/UpdateStudyRoomUseCase.kt | 10 ------ .../aliens/dms/domain/auth/AuthWebAdapter.kt | 8 ++--- 8 files changed, 134 insertions(+), 15 deletions(-) create mode 100644 dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomRequest.kt create mode 100644 dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomSeatsRequest.kt create mode 100644 dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomTimeSlotRequest.kt create mode 100644 dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomSeatsUseCase.kt create mode 100644 dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomTimeSlotUseCase.kt diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomRequest.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomRequest.kt new file mode 100644 index 000000000..5df9847a2 --- /dev/null +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomRequest.kt @@ -0,0 +1,32 @@ +package team.aliens.dms.domain.studyroom.dto + +import team.aliens.dms.domain.student.model.Sex +import team.aliens.dms.domain.studyroom.model.StudyRoom + +data class UpdateStudyRoomRequest( + val floor: Int, + val name: String, + val totalWidthSize: Int, + val totalHeightSize: Int, + val eastDescription: String, + val westDescription: String, + val southDescription: String, + val northDescription: String, + val availableSex: String, + val availableGrade: Int +) { + + fun toStudyRoom(studyRoom: StudyRoom) = + studyRoom.copy( + name = name, + floor = floor, + widthSize = totalWidthSize, + heightSize = totalHeightSize, + availableSex = Sex.valueOf(availableSex), + availableGrade = availableGrade, + eastDescription = eastDescription, + westDescription = westDescription, + southDescription = southDescription, + northDescription = northDescription + ) +} diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomSeatsRequest.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomSeatsRequest.kt new file mode 100644 index 000000000..a8fcf974a --- /dev/null +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomSeatsRequest.kt @@ -0,0 +1,33 @@ +package team.aliens.dms.domain.studyroom.dto + +import team.aliens.dms.domain.studyroom.model.Seat +import team.aliens.dms.domain.studyroom.model.SeatStatus +import java.util.UUID + +data class UpdateStudyRoomSeatsRequest( + val seats: List +) { + val availableHeadCount: Int = seats.count { + SeatStatus.AVAILABLE == SeatStatus.valueOf(it.status) + } + + data class SeatRequest( + val widthLocation: Int, + val heightLocation: Int, + val number: Int?, + val typeId: UUID?, + val status: String + ) + + fun toSeats(studyRoomId: UUID) = + seats.map { + Seat( + studyRoomId = studyRoomId, + typeId = it.typeId, + widthLocation = it.widthLocation, + heightLocation = it.heightLocation, + number = it.number, + status = SeatStatus.valueOf(it.status) + ) + } +} diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomTimeSlotRequest.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomTimeSlotRequest.kt new file mode 100644 index 000000000..306522ba8 --- /dev/null +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/dto/UpdateStudyRoomTimeSlotRequest.kt @@ -0,0 +1,16 @@ +package team.aliens.dms.domain.studyroom.dto + +import team.aliens.dms.domain.studyroom.model.StudyRoomTimeSlot +import java.util.UUID + +data class UpdateStudyRoomTimeSlotRequest( + val timeSlotIds: List +) { + fun toStudyRoomTimeSlots(studyRoomId: UUID) = + timeSlotIds.map { + StudyRoomTimeSlot( + studyRoomId = studyRoomId, + timeSlotId = it + ) + } +} diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/CreateStudyRoomUseCase.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/CreateStudyRoomUseCase.kt index 31e907e6b..5e5bccabb 100644 --- a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/CreateStudyRoomUseCase.kt +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/CreateStudyRoomUseCase.kt @@ -1,10 +1,10 @@ package team.aliens.dms.domain.studyroom.usecase -import java.util.UUID import team.aliens.dms.common.annotation.UseCase import team.aliens.dms.domain.studyroom.dto.CreateStudyRoomRequest import team.aliens.dms.domain.studyroom.service.StudyRoomService import team.aliens.dms.domain.user.service.UserService +import java.util.UUID @UseCase class CreateStudyRoomUseCase( diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomSeatsUseCase.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomSeatsUseCase.kt new file mode 100644 index 000000000..8d58d2ca4 --- /dev/null +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomSeatsUseCase.kt @@ -0,0 +1,27 @@ +package team.aliens.dms.domain.studyroom.usecase + +import team.aliens.dms.common.annotation.UseCase +import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomSeatsRequest +import team.aliens.dms.domain.studyroom.service.StudyRoomService +import java.util.UUID + +@UseCase +class UpdateStudyRoomSeatsUseCase( + private val studyRoomService: StudyRoomService +) { + + fun execute(request: UpdateStudyRoomSeatsRequest, studyRoomId: UUID) { + val studyRoom = studyRoomService.getStudyRoom(studyRoomId) + + studyRoomService.saveStudyRoom( + studyRoom.copy( + availableHeadcount = request.availableHeadCount + ) + ) + + studyRoomService.updateSeatsByStudyRoom( + studyRoomId = studyRoom.id, + seats = request.toSeats(studyRoom.id) + ) + } +} diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomTimeSlotUseCase.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomTimeSlotUseCase.kt new file mode 100644 index 000000000..559d2f3db --- /dev/null +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomTimeSlotUseCase.kt @@ -0,0 +1,21 @@ +package team.aliens.dms.domain.studyroom.usecase + +import team.aliens.dms.common.annotation.UseCase +import team.aliens.dms.domain.studyroom.dto.UpdateStudyRoomTimeSlotRequest +import team.aliens.dms.domain.studyroom.service.StudyRoomService +import java.util.UUID + +@UseCase +class UpdateStudyRoomTimeSlotUseCase( + private val studyRoomService: StudyRoomService +) { + + fun execute(request: UpdateStudyRoomTimeSlotRequest, studyRoomId: UUID) { + val studyRoom = studyRoomService.getStudyRoom(studyRoomId) + + studyRoomService.updateTimeSlotsByStudyRoom( + studyRoomId = studyRoomId, + studyRoomTimeSlots = request.toStudyRoomTimeSlots(studyRoom.id) + ) + } +} diff --git a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomUseCase.kt b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomUseCase.kt index 7d57a7c0d..d53127904 100644 --- a/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomUseCase.kt +++ b/dms-core/src/main/kotlin/team/aliens/dms/domain/studyroom/usecase/UpdateStudyRoomUseCase.kt @@ -23,15 +23,5 @@ class UpdateStudyRoomUseCase( studyRoomService.saveStudyRoom( request.toStudyRoom(studyRoom) ) - - studyRoomService.updateTimeSlotsByStudyRoom( - studyRoomId = studyRoom.id, - studyRoomTimeSlots = request.toStudyRoomTimeSlots(studyRoom.id) - ) - - studyRoomService.updateSeatsByStudyRoom( - studyRoomId = studyRoom.id, - seats = request.toSeats(studyRoom.id) - ) } } diff --git a/dms-presentation/src/main/kotlin/team/aliens/dms/domain/auth/AuthWebAdapter.kt b/dms-presentation/src/main/kotlin/team/aliens/dms/domain/auth/AuthWebAdapter.kt index 97695f211..cbd49908a 100644 --- a/dms-presentation/src/main/kotlin/team/aliens/dms/domain/auth/AuthWebAdapter.kt +++ b/dms-presentation/src/main/kotlin/team/aliens/dms/domain/auth/AuthWebAdapter.kt @@ -1,9 +1,5 @@ package team.aliens.dms.domain.auth -import javax.validation.Valid -import javax.validation.constraints.Email -import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull import org.hibernate.validator.constraints.Length import org.springframework.validation.annotation.Validated import org.springframework.web.bind.annotation.GetMapping @@ -29,6 +25,10 @@ import team.aliens.dms.domain.auth.usecase.CheckAccountIdExistenceUseCase import team.aliens.dms.domain.auth.usecase.ReissueTokenUseCase import team.aliens.dms.domain.auth.usecase.SendEmailCodeUseCase import team.aliens.dms.domain.auth.usecase.SignInUseCase +import javax.validation.Valid +import javax.validation.constraints.Email +import javax.validation.constraints.NotBlank +import javax.validation.constraints.NotNull @Validated @RequestMapping("/auth")