From 4ec9af84c0ac7b2c4f014d2a22bb9702398db9ac Mon Sep 17 00:00:00 2001 From: ParkSangsin Date: Mon, 16 Dec 2024 21:06:20 +0900 Subject: [PATCH] feature: add logic to reset display board queue --- .../controller/DisplayBoardController.java | 29 +++++++++++++++++++ .../service/DisplayBoardService.java | 4 ++- .../global/api_payload/SuccessCode.java | 5 +++- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/main/java/LuckyVicky/backend/display_board/controller/DisplayBoardController.java diff --git a/src/main/java/LuckyVicky/backend/display_board/controller/DisplayBoardController.java b/src/main/java/LuckyVicky/backend/display_board/controller/DisplayBoardController.java new file mode 100644 index 0000000..038bd99 --- /dev/null +++ b/src/main/java/LuckyVicky/backend/display_board/controller/DisplayBoardController.java @@ -0,0 +1,29 @@ +package LuckyVicky.backend.display_board.controller; + +import LuckyVicky.backend.display_board.service.DisplayBoardService; +import LuckyVicky.backend.global.api_payload.ApiResponse; +import LuckyVicky.backend.global.api_payload.SuccessCode; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "전광판") +@RestController +@RequestMapping("/display-board") +@RequiredArgsConstructor +public class DisplayBoardController { + private final DisplayBoardService displayBoardService; + + @Operation(summary = "전광판 큐 리셋 메서드", description = "전광판 큐 내 메세지들을 리셋하는 메서드입니다.") + @ApiResponses(value = { + @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "DISPLAY_2001", description = "전광판 큐 내 메세지들이 리셋되었습니다.") + }) + @GetMapping("/reset") + public ApiResponse resetDisplayBoard() { + return ApiResponse.onSuccess(SuccessCode.DISPLAY_BOARD_RESET_QUEUE_SUCCESS, displayBoardService.initializeQueue()); + } +} diff --git a/src/main/java/LuckyVicky/backend/display_board/service/DisplayBoardService.java b/src/main/java/LuckyVicky/backend/display_board/service/DisplayBoardService.java index 991af1a..f65388e 100644 --- a/src/main/java/LuckyVicky/backend/display_board/service/DisplayBoardService.java +++ b/src/main/java/LuckyVicky/backend/display_board/service/DisplayBoardService.java @@ -26,7 +26,7 @@ public class DisplayBoardService { private final Queue displayMessageQueue = new LinkedList<>(); @PostConstruct - private void initializeQueue() { + public Integer initializeQueue() { try { displayMessageQueue.clear(); @@ -40,6 +40,8 @@ private void initializeQueue() { } catch (Exception e) { log.error(INITIALIZE_QUEUE_FAIL_MESSAGE, e.getMessage(), e); } + + return displayMessageQueue.size(); } public DisplayMessage getNextDisplayMessage() { diff --git a/src/main/java/LuckyVicky/backend/global/api_payload/SuccessCode.java b/src/main/java/LuckyVicky/backend/global/api_payload/SuccessCode.java index 46171ee..fd9bc3b 100644 --- a/src/main/java/LuckyVicky/backend/global/api_payload/SuccessCode.java +++ b/src/main/java/LuckyVicky/backend/global/api_payload/SuccessCode.java @@ -70,7 +70,10 @@ public enum SuccessCode implements BaseCode { SMS_CERTIFICATE_SUCCESS(HttpStatus.OK, "SMS_2002", "문자 인증이 완료되었습니다."), // Fcm - FCM_SEND_SUCCESS(HttpStatus.OK, "FCM_2001", "fcm 알람이 성공적으로 전송되었습니다."); + FCM_SEND_SUCCESS(HttpStatus.OK, "FCM_2001", "fcm 알람이 성공적으로 전송되었습니다."), + + // Display Board + DISPLAY_BOARD_RESET_QUEUE_SUCCESS(HttpStatus.OK, "DISPLAY_2001","전광판 큐 내 메세지들이 리셋되었습니다."); private final HttpStatus httpStatus; private final String code;