Skip to content

Commit

Permalink
refactor: (#492) usecase 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
tedsoftj1123 committed May 10, 2023
1 parent 5b5fa46 commit 2a8c06e
Show file tree
Hide file tree
Showing 8 changed files with 134 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -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
)
}
Original file line number Diff line number Diff line change
@@ -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<SeatRequest>
) {
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)
)
}
}
Original file line number Diff line number Diff line change
@@ -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<UUID>
) {
fun toStudyRoomTimeSlots(studyRoomId: UUID) =
timeSlotIds.map {
StudyRoomTimeSlot(
studyRoomId = studyRoomId,
timeSlotId = it
)
}
}
Original file line number Diff line number Diff line change
@@ -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(
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
)
}
}
Original file line number Diff line number Diff line change
@@ -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)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
)
}
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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")
Expand Down

0 comments on commit 2a8c06e

Please sign in to comment.