56 lines
2.1 KiB
Java

package com.interplug.qcast.biz.community;
import com.interplug.qcast.biz.community.dto.BoardRequest;
import com.interplug.qcast.biz.community.dto.BoardResponse;
import com.interplug.qcast.biz.file.dto.FileRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/api/board")
@RequiredArgsConstructor
@Tag(name = "BoardController", description = "Community Board API")
public class BoardController {
private final BoardService boardService;
@Operation(description = "커뮤니티(공지사항, FAQ, 자료다운로드) 게시글 목록을 조회한다.")
@GetMapping("/list")
@ResponseStatus(HttpStatus.OK)
public BoardResponse getBoardList(@ModelAttribute BoardRequest boardRequest) throws Exception {
return boardService.getBoardList(boardRequest);
}
@Operation(description = "커뮤니티(공지사항, FAQ, 자료다운로드) 게시글 상세 정보를 조회한다.")
@GetMapping("/detail")
@ResponseStatus(HttpStatus.OK)
public BoardResponse getBoardDetail(@ModelAttribute BoardRequest boardRequest) throws Exception {
return boardService.getBoardDetail(boardRequest);
}
@Operation(description = "문의를 저장한다.")
@PostMapping("/saveQna")
@ResponseStatus(HttpStatus.OK)
public BoardResponse getBoardQnaSave(BoardRequest boardRequest, HttpServletRequest request) throws Exception {
return boardService.getBoardQnaSave(boardRequest, request);
}
@Operation(description = "커뮤니티(공지사항, FAQ, 자료다운로드) 파일 다운로드를 진행한다.")
@GetMapping("/file/download")
@ResponseStatus(HttpStatus.OK)
public void getFileDownload(
HttpServletResponse response,
@RequestParam(required = true) String keyNo,
@RequestParam String zipYn)
throws Exception {
boardService.getFileDownload(response, keyNo, zipYn);
}
}