Class NoticeController

java.lang.Object
inha.git.notice.api.controller.NoticeController

@RestController @RequestMapping("/api/v1/notices") public class NoticeController extends Object
공지사항 관련 API를 처리하는 컨트롤러입니다. 공지사항의 조회, 생성, 수정, 삭제 기능을 제공하며, 권한에 따른 접근 제어를 수행합니다.
  • Constructor Details

    • NoticeController

      public NoticeController()
  • Method Details

    • getNotices

      @GetMapping public BaseResponse<org.springframework.data.domain.Page<SearchNoticesResponse>> getNotices(@RequestParam("page") Integer page, @RequestParam("size") Integer size)
      전체 공지사항을 페이징하여 조회합니다.
      Parameters:
      page - 조회할 페이지 번호 (1부터 시작)
      size - 페이지당 항목 수
      Returns:
      페이징된 공지사항 목록
      Throws:
      BaseException - INVALID_PAGE: 페이지 번호가 유효하지 않은 경우 INVALID_SIZE: 페이지 크기가 유효하지 않은 경우
    • getNotice

      @GetMapping("/{noticeIdx}") public BaseResponse<SearchNoticeResponse> getNotice(@PathVariable("noticeIdx") Integer noticeIdx)
      특정 공지사항의 상세 정보를 조회합니다.
      Parameters:
      noticeIdx - 조회할 공지사항의 식별자
      Returns:
      공지사항 상세 정보
      Throws:
      BaseException - NOTICE_NOT_FOUND: 공지사항을 찾을 수 없는 경우
    • createNotice

      @PostMapping(consumes="multipart/form-data") @PreAuthorize("hasAuthority(\'assistant:create\')") public BaseResponse<String> createNotice(@AuthenticationPrincipal User user, @Validated @RequestPart("createNoticeRequest") CreateNoticeRequest createNoticeRequest, @RequestPart(value="attachmentList",required=false) List<org.springframework.web.multipart.MultipartFile> attachmentList)
      새로운 공지사항을 생성합니다.
      Parameters:
      user - 현재 인증된 사용자 정보
      createNoticeRequest - 생성할 공지사항 정보 (제목, 내용)
      attachmentList - 첨부파일 목록 (선택적)
      Returns:
      공지사항 생성 결과 메시지
    • updateNotice

      @PutMapping(value="/{noticeIdx}", consumes="multipart/form-data") @PreAuthorize("hasAuthority(\'assistant:update\')") public BaseResponse<String> updateNotice(@AuthenticationPrincipal User user, @PathVariable("noticeIdx") Integer noticeIdx, @Validated @RequestPart("updateNoticeRequest") UpdateNoticeRequest updateNoticeRequest, @RequestPart(value="attachmentList",required=false) List<org.springframework.web.multipart.MultipartFile> attachmentList)
      기존 공지사항을 수정합니다.
      Parameters:
      user - 현재 인증된 사용자 정보
      noticeIdx - 수정할 공지사항의 식별자
      updateNoticeRequest - 수정할 내용 (제목, 내용)
      attachmentList - 새로운 첨부파일 목록 (선택적)
      Returns:
      공지사항 수정 결과 메시지
      Throws:
      BaseException - NOTICE_NOT_FOUND: 공지사항을 찾을 수 없는 경우 NOTICE_NOT_AUTHORIZED: 수정 권한이 없는 경우
    • deleteNotice

      @DeleteMapping("/{noticeIdx}") @PreAuthorize("hasAuthority(\'assistant:delete\')") public BaseResponse<String> deleteNotice(@AuthenticationPrincipal User user, @PathVariable("noticeIdx") Integer noticeIdx)
      공지사항을 삭제(비활성화) 처리합니다.
      Parameters:
      user - 현재 인증된 사용자 정보
      noticeIdx - 삭제할 공지사항의 식별자
      Returns:
      공지사항 삭제 결과 메시지
      Throws:
      BaseException - NOTICE_NOT_FOUND: 공지사항을 찾을 수 없는 경우 NOTICE_NOT_AUTHORIZED: 삭제 권한이 없는 경우