Skip to content

Commit

Permalink
add: added response dto
Browse files Browse the repository at this point in the history
  • Loading branch information
thguss committed Sep 2, 2024
1 parent 2703f26 commit 38f58ae
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ class ScheduleService(
override fun registerSchedules(
roomUid: UuidTypeId,
request: RegisterSchedulesRequest,
) {
): SchedulesResponse {
val schedulesToRegister = request.toDomains(roomUid)
deleteSchedules(roomUid, schedulesToRegister)
schedulesToRegister.partition { it.id.getValue() == 0L }.let { (newSchedules, updatedSchedules) ->
scheduleCommandPort.saveSchedules(newSchedules)
scheduleCommandPort.updateSchedules(updatedSchedules)
}
val (newSchedules, changedSchedules) = schedulesToRegister.partition { it.id.getValue() == 0L }
val savedSchedules = scheduleCommandPort.saveSchedules(newSchedules)
val updatedSchedules = scheduleCommandPort.updateSchedules(changedSchedules)
return SchedulesResponse.from(savedSchedules + updatedSchedules)
}

override fun getSchedules(roomUid: UuidTypeId): SchedulesResponse {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ interface ScheduleUseCase {
fun registerSchedules(
roomUid: UuidTypeId,
request: RegisterSchedulesRequest,
)
): SchedulesResponse

fun getSchedules(roomUid: UuidTypeId): SchedulesResponse
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ data class SchedulesResponse(
companion object {
fun from(schedules: List<Schedule>): SchedulesResponse {
return SchedulesResponse(
schedules.map { ScheduleResponse.from(it) },
schedules.map { ScheduleResponse.from(it) }.sortedBy { it.sequence },
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ interface ScheduleQueryPort {
}

interface ScheduleCommandPort {
fun saveSchedules(schedules: List<Schedule>)
fun saveSchedules(schedules: List<Schedule>): List<Schedule>

fun deleteSchedules(scheduleIds: List<LongTypeId>)

fun updateSchedules(schedules: List<Schedule>)
fun updateSchedules(schedules: List<Schedule>): List<Schedule>
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ class ScheduleApi(
override fun registerSchedules(
@NotNull @PathVariable roomUid: UUID,
@Valid @NotNull @RequestBody request: RegisterSchedulesRequest,
): ResponseForm<Unit> {
scheduleUseCase.registerSchedules(UuidTypeId(roomUid), request)
return ResponseForm.EMPTY_RESPONSE
): ResponseForm<SchedulesResponse> {
return ResponseForm(
data = scheduleUseCase.registerSchedules(UuidTypeId(roomUid), request),
)
}

@ResponseStatus(HttpStatus.OK)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.enums.ParameterIn
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.parameters.RequestBody
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import io.swagger.v3.oas.annotations.tags.Tag
Expand All @@ -25,7 +26,7 @@ interface ScheduleApiDocs {
ApiResponse(
responseCode = "200",
description = "OK success",
content = [Content(schema = Schema(implementation = ResponseForm::class))],
content = [Content(schema = Schema(implementation = SuccessSchedulesResponse::class))],
),
],
)
Expand All @@ -44,9 +45,9 @@ interface ScheduleApiDocs {
)
@Valid
@NotNull
@io.swagger.v3.oas.annotations.parameters.RequestBody
@RequestBody
request: RegisterSchedulesRequest,
): ResponseForm<Unit>
): ResponseForm<SchedulesResponse>

@Operation(summary = "스케줄 조회 API", description = "스케줄을 조회합니다.")
@ApiResponses(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ class ScheduleAdapter(
private val placeRepository: PlaceRepository,
) : ScheduleCommandPort, ScheduleQueryPort {
@Transactional
override fun saveSchedules(schedules: List<Schedule>) {
scheduleRepository.saveAll(
override fun saveSchedules(schedules: List<Schedule>): List<Schedule> {
return scheduleRepository.saveAll(
schedules.map { ScheduleEntity(it) },
)
).map { it.toDomain() }
}

@Transactional
Expand All @@ -36,13 +36,11 @@ class ScheduleAdapter(
}

@Transactional
override fun updateSchedules(schedules: List<Schedule>) {
for (schedule in schedules) {
updateSchedule(schedule)
}
override fun updateSchedules(schedules: List<Schedule>): List<Schedule> {
return schedules.map { updateSchedule(it) }
}

private fun updateSchedule(schedule: Schedule) {
private fun updateSchedule(schedule: Schedule): Schedule {
val scheduleId =
requireNotNull(schedule.id) {
throw PiikiiException(
Expand All @@ -52,6 +50,7 @@ class ScheduleAdapter(
}
val scheduleEntity = findScheduleEntityById(scheduleId)
scheduleEntity.update(schedule)
return scheduleEntity.toDomain()
}

override fun findAllByRoomUid(roomUid: UuidTypeId): List<Schedule> {
Expand Down

0 comments on commit 38f58ae

Please sign in to comment.