1111import com .backend .domain .payment .service .PaymentMethodService ;
1212import com .backend .global .response .RsData ;
1313import io .swagger .v3 .oas .annotations .Operation ;
14+ import io .swagger .v3 .oas .annotations .Parameter ;
15+ import io .swagger .v3 .oas .annotations .media .Content ;
16+ import io .swagger .v3 .oas .annotations .media .Schema ;
17+ import io .swagger .v3 .oas .annotations .responses .ApiResponse ;
18+ import io .swagger .v3 .oas .annotations .responses .ApiResponses ;
1419import io .swagger .v3 .oas .annotations .tags .Tag ;
1520import lombok .RequiredArgsConstructor ;
1621import org .springframework .http .HttpStatus ;
@@ -41,10 +46,21 @@ private Member getActor(User user) {
4146 @ PostMapping
4247 @ Operation (summary = "결제 수단 등록" , description = "type: card, bank \n \n " + "CARD 등록: alias, isDefault, brand, last4, expMonth, expYear만 보내고 bankCode, bankName, acctLast4는 넣지마세요!\n \n " +
4348 "BANK 등록: alias, isDefault, bankCode(선택), bankName, acctLast4만 보내고 brand, last4, expMonth, expYear는 넣지마세요!" )
49+ @ ApiResponses ({
50+ @ ApiResponse (responseCode = "201" , description = "등록 성공" ,
51+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
52+ @ ApiResponse (responseCode = "400" , description = "잘못된 요청" ,
53+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
54+ @ ApiResponse (responseCode = "401" , description = "인증 실패" ,
55+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
56+ @ ApiResponse (responseCode = "409" , description = "별명(alias) 중복 등 충돌" ,
57+ content = @ Content (schema = @ Schema (implementation = RsData .class )))
58+ })
4459 public RsData <PaymentMethodResponse > create (
45- @ AuthenticationPrincipal User user ,
60+ @ Parameter ( hidden = true ) @ AuthenticationPrincipal User user ,
4661 @ RequestBody PaymentMethodCreateRequest request
4762 ) {
63+
4864 Member actor = getActor (user );
4965 PaymentMethodResponse data = paymentMethodService .create (actor .getId (), request );
5066
@@ -53,6 +69,12 @@ public RsData<PaymentMethodResponse> create(
5369
5470 @ GetMapping
5571 @ Operation (summary = "결제 수단 다건 조회" , description = "로그인한 사용자의 결제 수단 목록을 반환합니다." )
72+ @ ApiResponses ({
73+ @ ApiResponse (responseCode = "200" , description = "목록 조회 성공" ,
74+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
75+ @ ApiResponse (responseCode = "401" , description = "인증 실패" ,
76+ content = @ Content (schema = @ Schema (implementation = RsData .class )))
77+ })
5678 @ Transactional (readOnly = true )
5779 public RsData <List <PaymentMethodResponse >> list (@ AuthenticationPrincipal User user ) {
5880 Member actor = getActor (user );
@@ -63,8 +85,18 @@ public RsData<List<PaymentMethodResponse>> list(@AuthenticationPrincipal User us
6385
6486 @ GetMapping ("/{id}" )
6587 @ Operation (summary = "결제 수단 단건 조회" , description = "로그인한 사용자의 결제 수단 단건을 반환합니다." )
88+ @ ApiResponses ({
89+ @ ApiResponse (responseCode = "200" , description = "단건 조회 성공" ,
90+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
91+ @ ApiResponse (responseCode = "401" , description = "인증 실패" ,
92+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
93+ @ ApiResponse (responseCode = "403" , description = "권한 없음" ,
94+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
95+ @ ApiResponse (responseCode = "404" , description = "결제 수단 없음" ,
96+ content = @ Content (schema = @ Schema (implementation = RsData .class )))
97+ })
6698 public RsData <PaymentMethodResponse > getOne (
67- @ AuthenticationPrincipal User user ,
99+ @ Parameter ( hidden = true ) @ AuthenticationPrincipal User user ,
68100 @ PathVariable ("id" ) Long paymentMethodId
69101 ) {
70102 Member actor = getActor (user );
@@ -76,8 +108,22 @@ public RsData<PaymentMethodResponse> getOne(
76108 @ PutMapping ("/{id}" )
77109 @ Operation (summary = "결제 수단 수정" , description = "CARD 수정: alias, isDefault, brand, last4, expMonth, expYear만 보내고 bankCode, bankName, acctLast4는 삭제\n \n " +
78110 "BANK 수정: alias, isDefault, bankCode(선택), bankName, acctLast4만 보내고 brand, last4, expMonth, expYear는 삭제" )
111+ @ ApiResponses ({
112+ @ ApiResponse (responseCode = "200" , description = "수정 성공" ,
113+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
114+ @ ApiResponse (responseCode = "400" , description = "잘못된 요청" ,
115+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
116+ @ ApiResponse (responseCode = "401" , description = "인증 실패" ,
117+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
118+ @ ApiResponse (responseCode = "403" , description = "권한 없음" ,
119+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
120+ @ ApiResponse (responseCode = "404" , description = "결제수단 없음" ,
121+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
122+ @ ApiResponse (responseCode = "409" , description = "별명(alias) 중복 등 충돌" ,
123+ content = @ Content (schema = @ Schema (implementation = RsData .class )))
124+ })
79125 public RsData <PaymentMethodResponse > edit (
80- @ AuthenticationPrincipal User user ,
126+ @ Parameter ( hidden = true ) @ AuthenticationPrincipal User user ,
81127 @ PathVariable ("id" ) Long paymentMethodId ,
82128 @ RequestBody PaymentMethodEditRequest request
83129 ) {
@@ -89,8 +135,18 @@ public RsData<PaymentMethodResponse> edit(
89135
90136 @ DeleteMapping ("/{id}" )
91137 @ Operation (summary = "결제 수단 삭제" , description = "기본 수단 삭제 시 최근 생성 수단으로 자동 승계합니다." )
138+ @ ApiResponses ({
139+ @ ApiResponse (responseCode = "200" , description = "삭제 성공" ,
140+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
141+ @ ApiResponse (responseCode = "401" , description = "인증 실패" ,
142+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
143+ @ ApiResponse (responseCode = "403" , description = "권한 없음" ,
144+ content = @ Content (schema = @ Schema (implementation = RsData .class ))),
145+ @ ApiResponse (responseCode = "404" , description = "결제수단 없음" ,
146+ content = @ Content (schema = @ Schema (implementation = RsData .class )))
147+ })
92148 public RsData <PaymentMethodDeleteResponse > delete (
93- @ AuthenticationPrincipal User user ,
149+ @ Parameter ( hidden = true ) @ AuthenticationPrincipal User user ,
94150 @ PathVariable ("id" ) Long paymentMethodId
95151 ) {
96152 Member actor = getActor (user );
0 commit comments