generated from pricelees/issue-pr-template
42 lines
1.4 KiB
Kotlin
42 lines
1.4 KiB
Kotlin
package roomescape.payment.web
|
|
|
|
import jakarta.validation.Valid
|
|
import org.springframework.http.ResponseEntity
|
|
import org.springframework.web.bind.annotation.PostMapping
|
|
import org.springframework.web.bind.annotation.RequestBody
|
|
import org.springframework.web.bind.annotation.RequestMapping
|
|
import org.springframework.web.bind.annotation.RequestParam
|
|
import org.springframework.web.bind.annotation.RestController
|
|
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<CommonApiResponse<PaymentCreateResponse>> {
|
|
val response = paymentService.confirm(reservationId, request)
|
|
|
|
return ResponseEntity.ok(CommonApiResponse(response))
|
|
}
|
|
|
|
@PostMapping("/cancel")
|
|
override fun cancelPayment(
|
|
@User user: CurrentUserContext,
|
|
@Valid @RequestBody request: PaymentCancelRequest
|
|
): ResponseEntity<CommonApiResponse<Unit>> {
|
|
paymentService.cancel(user.id, request)
|
|
|
|
return ResponseEntity.ok(CommonApiResponse())
|
|
}
|
|
}
|