generated from pricelees/issue-pr-template
<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #34 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - 회원 테이블과 관리자 테이블 분리 및 관리자 계정의 예약 기능 제거 - API 인증을 모두(Public) / 회원 전용(UserOnly) / 관리자 전용(AdminOnly) / 회원 + 관리자(Authenticated) 로 세분화해서 구분 - 관리자의 경우 API 접근 권한 세분화 등 인증 로직 개선 - 전체 리팩터링이 완료되어 레거시 코드 제거 ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> <img width="750" alt="스크린샷 2025-09-13 19.11.44.png" src="attachments/11e1a79c-9723-4843-839d-be6158d94130"> - 추가 & 변경된 모든 API에 대한 통합 테스트 진행 ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! --> Reviewed-on: #43 Co-authored-by: pricelees <priceelees@gmail.com> Co-committed-by: pricelees <priceelees@gmail.com>
36 lines
1.5 KiB
Kotlin
36 lines
1.5 KiB
Kotlin
package roomescape.payment.docs
|
|
|
|
import io.swagger.v3.oas.annotations.Operation
|
|
import io.swagger.v3.oas.annotations.responses.ApiResponse
|
|
import io.swagger.v3.oas.annotations.responses.ApiResponses
|
|
import jakarta.validation.Valid
|
|
import org.springframework.http.ResponseEntity
|
|
import org.springframework.web.bind.annotation.RequestBody
|
|
import org.springframework.web.bind.annotation.RequestParam
|
|
import roomescape.auth.web.support.CurrentUser
|
|
import roomescape.auth.web.support.UserOnly
|
|
import roomescape.common.dto.CurrentUserContext
|
|
import roomescape.common.dto.response.CommonApiResponse
|
|
import roomescape.payment.web.PaymentCancelRequest
|
|
import roomescape.payment.web.PaymentConfirmRequest
|
|
import roomescape.payment.web.PaymentCreateResponse
|
|
|
|
interface PaymentAPI {
|
|
|
|
@UserOnly
|
|
@Operation(summary = "결제 승인", tags = ["로그인이 필요한 API"])
|
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
|
fun confirmPayment(
|
|
@RequestParam(required = true) reservationId: Long,
|
|
@Valid @RequestBody request: PaymentConfirmRequest
|
|
): ResponseEntity<CommonApiResponse<PaymentCreateResponse>>
|
|
|
|
@UserOnly
|
|
@Operation(summary = "결제 취소", tags = ["로그인이 필요한 API"])
|
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
|
fun cancelPayment(
|
|
@CurrentUser user: CurrentUserContext,
|
|
@Valid @RequestBody request: PaymentCancelRequest
|
|
): ResponseEntity<CommonApiResponse<Unit>>
|
|
}
|