-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
318 additions
and
193 deletions.
There are no files selected for viewing
30 changes: 15 additions & 15 deletions
30
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/dto/ApplyOutingRequest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,15 @@ | ||
package team.aliens.dms.domain.outing.dto | ||
|
||
import java.time.LocalDate | ||
import java.time.LocalTime | ||
import java.util.UUID | ||
|
||
data class ApplyOutingRequest( | ||
val outAt: LocalDate, | ||
val outingTime: LocalTime, | ||
val arrivalTime: LocalTime, | ||
val destination: String, | ||
val outingTypeTitle: String, | ||
val reason: String, | ||
val companionIds: List<UUID>?, | ||
) | ||
package team.aliens.dms.domain.outing.dto | ||
|
||
import java.time.LocalDate | ||
import java.time.LocalTime | ||
import java.util.UUID | ||
|
||
data class ApplyOutingRequest( | ||
val outAt: LocalDate, | ||
val outingTime: LocalTime, | ||
val arrivalTime: LocalTime, | ||
val destination: String, | ||
val outingTypeTitle: String, | ||
val reason: String, | ||
val companionIds: List<UUID>? | ||
) |
14 changes: 7 additions & 7 deletions
14
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/dto/ApplyOutingResponse.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
package team.aliens.dms.domain.outing.dto | ||
|
||
import java.util.UUID | ||
|
||
data class ApplyOutingResponse( | ||
val outingApplicationId: UUID | ||
) | ||
package team.aliens.dms.domain.outing.dto | ||
|
||
import java.util.UUID | ||
|
||
data class ApplyOutingResponse( | ||
val outingApplicationId: UUID | ||
) |
5 changes: 5 additions & 0 deletions
5
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/dto/CreateOutingTypeRequest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package team.aliens.dms.domain.outing.dto | ||
|
||
data class CreateOutingTypeRequest( | ||
val title: String | ||
) |
45 changes: 23 additions & 22 deletions
45
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/exception/OutingErrorCode.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,23 @@ | ||
package team.aliens.dms.domain.outing.exception | ||
|
||
import team.aliens.dms.common.error.ErrorProperty | ||
import team.aliens.dms.common.error.ErrorStatus | ||
|
||
enum class OutingErrorCode( | ||
private val status: Int, | ||
private val message: String, | ||
private val sequence: Int | ||
) : ErrorProperty { | ||
|
||
OUTING_AVAILABLE_TIME_MISMATCH(ErrorStatus.FORBIDDEN, "Outing Available Time Mismatch", 1), | ||
|
||
OUTING_APPLICATION_NOT_FOUND(ErrorStatus.NOT_FOUND, "Outing Not Found", 1), | ||
|
||
OUTING_APPLICATION_ALREADY_EXISTS(ErrorStatus.CONFLICT, "Outing Application Already Exists", 1), | ||
; | ||
|
||
override fun status(): Int = status | ||
override fun message(): String = message | ||
override fun code(): String = "OUTING-$status-$sequence" | ||
} | ||
package team.aliens.dms.domain.outing.exception | ||
|
||
import team.aliens.dms.common.error.ErrorProperty | ||
import team.aliens.dms.common.error.ErrorStatus | ||
|
||
enum class OutingErrorCode( | ||
private val status: Int, | ||
private val message: String, | ||
private val sequence: Int | ||
) : ErrorProperty { | ||
|
||
OUTING_AVAILABLE_TIME_MISMATCH(ErrorStatus.FORBIDDEN, "Outing Available Time Mismatch", 1), | ||
|
||
OUTING_APPLICATION_NOT_FOUND(ErrorStatus.NOT_FOUND, "Outing Not Found", 1), | ||
|
||
OUTING_APPLICATION_ALREADY_EXISTS(ErrorStatus.CONFLICT, "Outing Application Already Exists", 1), | ||
OUTING_TYPE_ALREADY_EXISTS(ErrorStatus.CONFLICT, "Outing Type Already Exists", 2) | ||
; | ||
|
||
override fun status(): Int = status | ||
override fun message(): String = message | ||
override fun code(): String = "OUTING-$status-$sequence" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 4 additions & 1 deletion
5
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/service/CommandOutingService.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,11 @@ | ||
package team.aliens.dms.domain.outing.service | ||
|
||
import team.aliens.dms.domain.outing.model.OutingApplication | ||
import team.aliens.dms.domain.outing.model.OutingType | ||
|
||
interface CommandOutingService { | ||
|
||
fun apply(outingApplication: OutingApplication): OutingApplication | ||
fun saveOutingApplication(outingApplication: OutingApplication): OutingApplication | ||
|
||
fun saveOutingType(outingType: OutingType): OutingType | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 8 additions & 0 deletions
8
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/spi/CommandOutingTypePort.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package team.aliens.dms.domain.outing.spi | ||
|
||
import team.aliens.dms.domain.outing.model.OutingType | ||
|
||
interface CommandOutingTypePort { | ||
|
||
fun saveOutingType(outingType: OutingType): OutingType | ||
} |
5 changes: 5 additions & 0 deletions
5
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/spi/OutingTypePort.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package team.aliens.dms.domain.outing.spi | ||
|
||
interface OutingTypePort : | ||
QueryOutingTypePort, | ||
CommandOutingTypePort |
8 changes: 8 additions & 0 deletions
8
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/spi/QueryOutingTypePort.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package team.aliens.dms.domain.outing.spi | ||
|
||
import team.aliens.dms.domain.outing.model.OutingType | ||
|
||
interface QueryOutingTypePort { | ||
|
||
fun existsOutingType(outingType: OutingType): Boolean | ||
} |
96 changes: 48 additions & 48 deletions
96
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/usecase/ApplyOutingUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,48 @@ | ||
package team.aliens.dms.domain.outing.usecase | ||
|
||
import team.aliens.dms.common.annotation.UseCase | ||
import team.aliens.dms.common.service.security.SecurityService | ||
import team.aliens.dms.domain.outing.dto.ApplyOutingRequest | ||
import team.aliens.dms.domain.outing.dto.ApplyOutingResponse | ||
import team.aliens.dms.domain.outing.model.OutingApplication | ||
import team.aliens.dms.domain.outing.model.OutingStatus | ||
import team.aliens.dms.domain.outing.service.OutingService | ||
import team.aliens.dms.domain.student.service.StudentService | ||
import java.time.LocalDateTime | ||
|
||
@UseCase | ||
class ApplyOutingUseCase( | ||
private val outingService: OutingService, | ||
private val studentService: StudentService, | ||
private val securityService: SecurityService, | ||
) { | ||
|
||
fun execute(request: ApplyOutingRequest): ApplyOutingResponse { | ||
val student = studentService.getCurrentStudent() | ||
|
||
outingService.checkOutingApplicationAvailable( | ||
studentId = student.id, | ||
outAt = request.outAt, | ||
outingTime = request.outingTime, | ||
arrivalTime = request.arrivalTime | ||
) | ||
|
||
val outing = outingService.apply( | ||
OutingApplication( | ||
studentId = student.id, | ||
createdAt = LocalDateTime.now(), | ||
outAt = request.outAt, | ||
outingTime = request.outingTime, | ||
arrivalTime = request.arrivalTime, | ||
status = OutingStatus.REQUESTED, | ||
reason = request.reason, | ||
destination = request.destination, | ||
outingTypeTitle = request.outingTypeTitle, | ||
schoolId = securityService.getCurrentSchoolId(), | ||
companionIds = request.companionIds | ||
) | ||
) | ||
|
||
return ApplyOutingResponse(outing.id) | ||
} | ||
} | ||
package team.aliens.dms.domain.outing.usecase | ||
|
||
import team.aliens.dms.common.annotation.UseCase | ||
import team.aliens.dms.common.service.security.SecurityService | ||
import team.aliens.dms.domain.outing.dto.ApplyOutingRequest | ||
import team.aliens.dms.domain.outing.dto.ApplyOutingResponse | ||
import team.aliens.dms.domain.outing.model.OutingApplication | ||
import team.aliens.dms.domain.outing.model.OutingStatus | ||
import team.aliens.dms.domain.outing.service.OutingService | ||
import team.aliens.dms.domain.student.service.StudentService | ||
import java.time.LocalDateTime | ||
|
||
@UseCase | ||
class ApplyOutingUseCase( | ||
private val outingService: OutingService, | ||
private val studentService: StudentService, | ||
private val securityService: SecurityService, | ||
) { | ||
|
||
fun execute(request: ApplyOutingRequest): ApplyOutingResponse { | ||
val student = studentService.getCurrentStudent() | ||
|
||
outingService.checkOutingApplicationAvailable( | ||
studentId = student.id, | ||
outAt = request.outAt, | ||
outingTime = request.outingTime, | ||
arrivalTime = request.arrivalTime | ||
) | ||
|
||
val outing = outingService.saveOutingApplication( | ||
OutingApplication( | ||
studentId = student.id, | ||
createdAt = LocalDateTime.now(), | ||
outAt = request.outAt, | ||
outingTime = request.outingTime, | ||
arrivalTime = request.arrivalTime, | ||
status = OutingStatus.REQUESTED, | ||
reason = request.reason, | ||
destination = request.destination, | ||
outingTypeTitle = request.outingTypeTitle, | ||
schoolId = securityService.getCurrentSchoolId(), | ||
companionIds = request.companionIds | ||
) | ||
) | ||
|
||
return ApplyOutingResponse(outing.id) | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
dms-core/src/main/kotlin/team/aliens/dms/domain/outing/usecase/CreateOutingTypeUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package team.aliens.dms.domain.outing.usecase | ||
|
||
import team.aliens.dms.common.annotation.UseCase | ||
import team.aliens.dms.common.service.security.SecurityService | ||
import team.aliens.dms.domain.outing.dto.CreateOutingTypeRequest | ||
import team.aliens.dms.domain.outing.model.OutingType | ||
import team.aliens.dms.domain.outing.service.OutingService | ||
|
||
@UseCase | ||
class CreateOutingTypeUseCase( | ||
private val outingService: OutingService, | ||
private val securityService: SecurityService, | ||
) { | ||
|
||
fun execute(request: CreateOutingTypeRequest) { | ||
val outingType = OutingType( | ||
title = request.title, | ||
schoolId = securityService.getCurrentSchoolId() | ||
) | ||
|
||
outingService.checkOutingTypeExists(outingType) | ||
|
||
outingService.saveOutingType(outingType) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.