package roomescape.payment.web import jakarta.validation.Valid import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* import roomescape.auth.web.support.User import roomescape.common.dto.CurrentUserContext import roomescape.common.dto.response.CommonApiResponse import roomescape.payment.business.PaymentService import roomescape.payment.docs.PaymentAPI @RestController @RequestMapping("/payments") class PaymentController( private val paymentService: PaymentService ) : PaymentAPI { @PostMapping override fun confirmPayment( @RequestParam(required = true) reservationId: Long, @Valid @RequestBody request: PaymentConfirmRequest ): ResponseEntity> { val response = paymentService.confirm(reservationId, request) return ResponseEntity.ok(CommonApiResponse(response)) } @PostMapping("/cancel") override fun cancelPayment( @User user: CurrentUserContext, @Valid @RequestBody request: PaymentCancelRequest ): ResponseEntity> { paymentService.cancel(user.id, request) return ResponseEntity.ok(CommonApiResponse()) } }