Package inha.git.notice.api.controller
Class NoticeController
java.lang.Object
inha.git.notice.api.controller.NoticeController
공지사항 관련 API를 처리하는 컨트롤러입니다.
공지사항의 조회, 생성, 수정, 삭제 기능을 제공하며, 권한에 따른 접근 제어를 수행합니다.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateNotice
(User user, CreateNoticeRequest createNoticeRequest, List<org.springframework.web.multipart.MultipartFile> attachmentList) 새로운 공지사항을 생성합니다.deleteNotice
(User user, Integer noticeIdx) 공지사항을 삭제(비활성화) 처리합니다.특정 공지사항의 상세 정보를 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchNoticesResponse>>
getNotices
(Integer page, Integer size) 전체 공지사항을 페이징하여 조회합니다.updateNotice
(User user, Integer noticeIdx, UpdateNoticeRequest updateNoticeRequest, List<org.springframework.web.multipart.MultipartFile> attachmentList) 기존 공지사항을 수정합니다.
-
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: 삭제 권한이 없는 경우
-