Skip to content

Commit

Permalink
docs: 예매 swagger 어노테이션 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
Hanna committed Jan 12, 2024
1 parent 3f0019d commit ee0d662
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,21 @@
import com.pgms.coredomain.response.ApiResponse;
import com.pgms.coresecurity.security.resolver.CurrentAccount;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/api/v1/bookings")
@RequiredArgsConstructor
@Tag(name = "예매")
public class BookingController {

private final BookingService bookingService;

@Operation(summary = "예매 생성")
@PostMapping("/create")
public ResponseEntity<ApiResponse<BookingCreateResponse>> createBooking(
@CurrentAccount Long memberId,
Expand All @@ -52,6 +56,7 @@ public ResponseEntity<ApiResponse<BookingCreateResponse>> createBooking(
return ResponseEntity.created(location).body(response);
}

@Operation(summary = "예매 취소")
@PostMapping("/{id}/cancel")
public ResponseEntity<Void> cancelBooking(
@CurrentAccount Long memberId,
Expand All @@ -61,12 +66,14 @@ public ResponseEntity<Void> cancelBooking(
return ResponseEntity.noContent().build();
}

@Operation(summary = "예매 이탈")
@PostMapping("/{id}/exit")
public ResponseEntity<Void> exitBooking(@PathVariable String id) {
bookingService.exitBooking(id);
return ResponseEntity.noContent().build();
}

@Operation(summary = "내 예매 목록 조회")
@GetMapping
public ResponseEntity<ApiResponse<PageResponse<BookingsGetResponse>>> getBookings(
@CurrentAccount Long memberId,
Expand All @@ -78,6 +85,7 @@ public ResponseEntity<ApiResponse<PageResponse<BookingsGetResponse>>> getBooking
return ResponseEntity.ok().body(response);
}

@Operation(summary = "내 예매 상세 조회")
@GetMapping("/{id}")
public ResponseEntity<ApiResponse<BookingGetResponse>> getBooking(
@CurrentAccount Long memberId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,41 +18,49 @@
import com.pgms.apibooking.domain.bookingqueue.service.BookingQueueService;
import com.pgms.coredomain.response.ApiResponse;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/api/v1/bookings")
@RequiredArgsConstructor
@Tag(name = "예매 대기열")
public class BookingQueueController {

private final BookingQueueService bookingQueueService;

@Operation(summary = "세션 아이디 발급")
@PostMapping("/issue-session-id")
public ResponseEntity<ApiResponse<SessionIdIssueResponse>> issueSessionId() {
ApiResponse<SessionIdIssueResponse> response = ApiResponse.ok(bookingQueueService.issueSessionId());
return ResponseEntity.ok(response);
}

@Operation(summary = "대기열 진입")
@PostMapping("/enter-queue")
public ResponseEntity<Void> enterQueue(@RequestBody @Valid BookingQueueEnterRequest request, @RequestAttribute("bookingSessionId") String bookingSessionId) {
bookingQueueService.enterQueue(request, bookingSessionId);
return ResponseEntity.noContent().build();
}

@Operation(summary = "내 대기 순서 확인")
@GetMapping("/order-in-queue")
public ResponseEntity<ApiResponse<OrderInQueueGetResponse>> getOrderInQueue(@RequestParam Long eventId, @RequestAttribute("bookingSessionId") String bookingSessionId) {
ApiResponse<OrderInQueueGetResponse> response =
ApiResponse.ok(bookingQueueService.getOrderInQueue(eventId, bookingSessionId));
return ResponseEntity.ok(response);
}

@Operation(summary = "예매 토큰 발급")
@PostMapping("/issue-token")
public ResponseEntity<ApiResponse<TokenIssueResponse>> issueToken(@RequestBody @Valid TokenIssueRequest request, @RequestAttribute("bookingSessionId") String bookingSessionId) {
ApiResponse<TokenIssueResponse> response = ApiResponse.ok(bookingQueueService.issueToken(request, bookingSessionId));
return ResponseEntity.ok(response);
}

@Operation(summary = "대기열 이탈")
@PostMapping("/exit-queue")
public ResponseEntity<Void> exitQueue(@RequestBody @Valid BookingQueueExitRequest request, @RequestAttribute("bookingSessionId") String bookingSessionId) {
bookingQueueService.exitQueue(request, bookingSessionId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,19 @@
import com.pgms.apibooking.domain.payment.service.PaymentService;
import com.pgms.coredomain.response.ApiResponse;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/api/v1/payments")
@RequiredArgsConstructor
@Tag(name = "결제")
public class PaymentController {

private final PaymentService paymentService;

@Operation(summary = "결제 성공 처리")
@GetMapping("/success")
public ResponseEntity<ApiResponse> confirmPaymentSuccess(
@RequestParam String paymentKey,
Expand All @@ -31,6 +35,7 @@ public ResponseEntity<ApiResponse> confirmPaymentSuccess(
return ResponseEntity.ok(ApiResponse.ok(paymentService.successPayment(paymentKey, bookingId, amount)));
}

@Operation(summary = "결제 실패 처리")
@GetMapping("/fail")
public ResponseEntity<ApiResponse> confirmPaymentFail(
@RequestParam(name = "code") String errorCode,
Expand All @@ -42,6 +47,7 @@ public ResponseEntity<ApiResponse> confirmPaymentFail(
return ResponseEntity.ok(response);
}

@Operation(summary = "가상계좌 입금 확인 웹훅")
@PostMapping("/virtual/income")
public ResponseEntity<Void> confirmVirtualAccountIncome(@RequestBody ConfirmVirtualIncomeRequest request) {
System.out.println(request.createdAt());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,34 @@
import com.pgms.coredomain.response.ApiResponse;
import com.pgms.coresecurity.security.resolver.CurrentAccount;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/api/v1/seats")
@RequiredArgsConstructor
@Tag(name = "좌석")
public class SeatController {

private final SeatService seatService;

@Operation(summary = "좌석 목록 조회")
@GetMapping
public ResponseEntity<ApiResponse<List<AreaResponse>>> getSeats(@ModelAttribute @Valid SeatsGetRequest request) {
ApiResponse<List<AreaResponse>> response = ApiResponse.ok(seatService.getSeats(request));
return ResponseEntity.ok().body(response);
}

@Operation(summary = "좌석 선택")
@PostMapping("/{seatId}/select")
public ResponseEntity<Void> selectSeat(@PathVariable Long seatId, @CurrentAccount Long memberId) {
seatService.selectSeat(seatId, memberId);
return ResponseEntity.noContent().build();
}

@Operation(summary = "좌석 선택 해제")
@PostMapping("/{seatId}/deselect")
public ResponseEntity<Void> deselectSeat(@PathVariable Long seatId, @CurrentAccount Long memberId) {
seatService.deselectSeat(seatId, memberId);
Expand Down

0 comments on commit ee0d662

Please sign in to comment.