From c7b836a488c5272e17a6639cf4f0e2e1a8be07d7 Mon Sep 17 00:00:00 2001 From: hyerinhwang-sailin Date: Wed, 9 Oct 2024 01:02:07 +0900 Subject: [PATCH] =?UTF-8?q?[#241]=20refactor(TicketController):=20ticket?= =?UTF-8?q?=20swagger=20=EB=AC=B8=EC=84=9C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/booking/api/TicketController.java | 81 ++++++++++--------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/beat/domain/booking/api/TicketController.java b/src/main/java/com/beat/domain/booking/api/TicketController.java index ef10a3d7..313abd92 100644 --- a/src/main/java/com/beat/domain/booking/api/TicketController.java +++ b/src/main/java/com/beat/domain/booking/api/TicketController.java @@ -1,52 +1,61 @@ package com.beat.domain.booking.api; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PutMapping; +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 com.beat.domain.booking.application.TicketService; import com.beat.domain.booking.application.dto.TicketCancelRequest; import com.beat.domain.booking.application.dto.TicketRetrieveResponse; import com.beat.domain.booking.application.dto.TicketUpdateRequest; import com.beat.domain.booking.domain.BookingStatus; import com.beat.domain.booking.exception.BookingSuccessCode; +import com.beat.domain.schedule.domain.ScheduleNumber; import com.beat.global.auth.annotation.CurrentMember; import com.beat.global.common.dto.SuccessResponse; -import com.beat.domain.schedule.domain.ScheduleNumber; -import io.swagger.v3.oas.annotations.Operation; + import lombok.RequiredArgsConstructor; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/tickets") @RequiredArgsConstructor -public class TicketController { - - private final TicketService ticketService; - - @Operation(summary = "예매자 목록 조회 API", description = "메이커가 자신의 공연에 대한 예매자 목록을 조회하는 GET API입니다.") - @GetMapping("/{performanceId}") - public ResponseEntity> getTickets( - @CurrentMember Long memberId, - @PathVariable Long performanceId, - @RequestParam(required = false) ScheduleNumber scheduleNumber, - @RequestParam(required = false) BookingStatus bookingStatus) { - TicketRetrieveResponse response = ticketService.getTickets(memberId, performanceId, scheduleNumber, bookingStatus); - return ResponseEntity.ok(SuccessResponse.of(BookingSuccessCode.TICKET_RETRIEVE_SUCCESS, response)); - } - - @Operation(summary = "예매자 입금여부 수정 및 웹발신 API", description = "메이커가 자신의 공연에 대한 예매자의 입금여부 정보를 수정한 뒤 예매확정 웹발신을 보내는 PUT API입니다.") - @PutMapping - public ResponseEntity> updateTickets( - @CurrentMember Long memberId, - @RequestBody TicketUpdateRequest request) { - ticketService.updateTickets(memberId, request); - return ResponseEntity.ok(SuccessResponse.from(BookingSuccessCode.TICKET_UPDATE_SUCCESS)); - } - - @Operation(summary = "예매자 취소 API", description = "메이커가 자신의 공연에 대한 1명 이상의 예매자의 정보를 취소 상태로 변경하는 PATCH API입니다.") - @PatchMapping - public ResponseEntity> cancelTickets( - @CurrentMember Long memberId, - @RequestBody TicketCancelRequest ticketCancelRequest) { - ticketService.cancelTickets(memberId, ticketCancelRequest); - return ResponseEntity.ok(SuccessResponse.from(BookingSuccessCode.TICKET_CANCEL_SUCCESS)); - } +public class TicketController implements TicketApi { + + private final TicketService ticketService; + + @Override + @GetMapping("/{performanceId}") + public ResponseEntity> getTickets( + @CurrentMember Long memberId, + @PathVariable Long performanceId, + @RequestParam(required = false) ScheduleNumber scheduleNumber, + @RequestParam(required = false) BookingStatus bookingStatus) { + TicketRetrieveResponse response = ticketService.getTickets(memberId, performanceId, scheduleNumber, + bookingStatus); + return ResponseEntity.ok(SuccessResponse.of(BookingSuccessCode.TICKET_RETRIEVE_SUCCESS, response)); + } + + @Override + @PutMapping + public ResponseEntity> updateTickets( + @CurrentMember Long memberId, + @RequestBody TicketUpdateRequest request) { + ticketService.updateTickets(memberId, request); + return ResponseEntity.ok(SuccessResponse.from(BookingSuccessCode.TICKET_UPDATE_SUCCESS)); + } + + @Override + @PatchMapping + public ResponseEntity> cancelTickets( + @CurrentMember Long memberId, + @RequestBody TicketCancelRequest ticketCancelRequest) { + ticketService.cancelTickets(memberId, ticketCancelRequest); + return ResponseEntity.ok(SuccessResponse.from(BookingSuccessCode.TICKET_CANCEL_SUCCESS)); + } }