generated from pricelees/issue-pr-template
[#44] 매장 기능 도입 #45
@ -0,0 +1,66 @@
|
||||
package roomescape.schedule.web
|
||||
|
||||
import jakarta.validation.Valid
|
||||
import org.springframework.format.annotation.DateTimeFormat
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.*
|
||||
import roomescape.common.dto.AuditInfo
|
||||
import roomescape.common.dto.response.CommonApiResponse
|
||||
import roomescape.schedule.business.ScheduleService
|
||||
import roomescape.schedule.docs.AdminScheduleAPI
|
||||
import java.time.LocalDate
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/admin")
|
||||
class AdminScheduleController(
|
||||
private val scheduleService: ScheduleService,
|
||||
) : AdminScheduleAPI {
|
||||
@GetMapping("/stores/{storeId}/schedules")
|
||||
override fun searchSchedules(
|
||||
@PathVariable("storeId") storeId: Long,
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate?,
|
||||
@RequestParam(required = false) themeId: Long?,
|
||||
): ResponseEntity<CommonApiResponse<AdminScheduleSummaryListResponse>> {
|
||||
val response = scheduleService.searchSchedules(storeId, date, themeId)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping("/schedules/{id}/audits")
|
||||
override fun findScheduleAudit(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<AuditInfo>> {
|
||||
val response = scheduleService.findScheduleAuditOrUnknown(id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@PostMapping("/stores/{storeId}/schedules")
|
||||
override fun createSchedule(
|
||||
@PathVariable("storeId") storeId: Long,
|
||||
@Valid @RequestBody request: ScheduleCreateRequest
|
||||
): ResponseEntity<CommonApiResponse<ScheduleCreateResponse>> {
|
||||
val response = scheduleService.createSchedule(storeId, request)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@PatchMapping("/schedules/{id}")
|
||||
override fun updateSchedule(
|
||||
@PathVariable("id") id: Long,
|
||||
@Valid @RequestBody request: ScheduleUpdateRequest
|
||||
): ResponseEntity<CommonApiResponse<Unit>> {
|
||||
scheduleService.updateSchedule(id, request)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(Unit))
|
||||
}
|
||||
|
||||
@DeleteMapping("/schedules/{id}")
|
||||
override fun deleteSchedule(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<Unit>> {
|
||||
scheduleService.deleteSchedule(id)
|
||||
|
||||
return ResponseEntity.noContent().build()
|
||||
}
|
||||
}
|
||||
@ -1,57 +1,20 @@
|
||||
package roomescape.schedule.web
|
||||
|
||||
import jakarta.validation.Valid
|
||||
import org.springframework.format.annotation.DateTimeFormat
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.*
|
||||
import roomescape.common.dto.response.CommonApiResponse
|
||||
import roomescape.schedule.business.ScheduleService
|
||||
import roomescape.schedule.docs.ScheduleAPI
|
||||
import roomescape.schedule.docs.PublicScheduleAPI
|
||||
import roomescape.schedule.docs.UserScheduleAPI
|
||||
import java.time.LocalDate
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/schedules")
|
||||
class ScheduleController(
|
||||
private val scheduleService: ScheduleService
|
||||
) : ScheduleAPI {
|
||||
@GetMapping("/themes")
|
||||
override fun findAvailableThemes(
|
||||
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate
|
||||
): ResponseEntity<CommonApiResponse<AvailableThemeIdListResponse>> {
|
||||
val response = scheduleService.findThemesByDate(date)
|
||||
) : UserScheduleAPI, PublicScheduleAPI {
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
override fun findAllTime(
|
||||
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate,
|
||||
@RequestParam("themeId") themeId: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleListByDateResponse>> {
|
||||
val response = scheduleService.findSchedules(date, themeId)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
override fun findScheduleDetail(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleDetailResponse>> {
|
||||
val response = scheduleService.findDetail(id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
override fun createSchedule(
|
||||
@Valid @RequestBody request: ScheduleCreateRequest
|
||||
): ResponseEntity<CommonApiResponse<ScheduleCreateResponse>> {
|
||||
val response = scheduleService.createSchedule(request)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@PatchMapping("/{id}/hold")
|
||||
@PostMapping("/schedules/{id}/hold")
|
||||
override fun holdSchedule(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<Unit>> {
|
||||
@ -60,22 +23,13 @@ class ScheduleController(
|
||||
return ResponseEntity.ok(CommonApiResponse())
|
||||
}
|
||||
|
||||
@PatchMapping("/{id}")
|
||||
override fun updateSchedule(
|
||||
@PathVariable("id") id: Long,
|
||||
@Valid @RequestBody request: ScheduleUpdateRequest
|
||||
): ResponseEntity<CommonApiResponse<Unit>> {
|
||||
scheduleService.updateSchedule(id, request)
|
||||
@GetMapping("/stores/{storeId}/schedules")
|
||||
override fun getStoreSchedulesByDate(
|
||||
@PathVariable("storeId") storeId: Long,
|
||||
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate
|
||||
): ResponseEntity<CommonApiResponse<ScheduleWithThemeListResponse>> {
|
||||
val response = scheduleService.getStoreScheduleByDate(storeId, date)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(Unit))
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
override fun deleteSchedule(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<Unit>> {
|
||||
scheduleService.deleteSchedule(id)
|
||||
|
||||
return ResponseEntity.noContent().build()
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user