개발 기록/도서관 관리 시스템

[Library Management System] 25.09.02 (35일)

dev.jelee 2025. 9. 2. 16:20

[ 작업한 내용 ]

1. 공지 수정

1-1) 요청, 응답 DTO 생성

- AdminNoticeUpdateReqDTO.java

- AdminNoticeUpdateResDTO.java


1-2) messages.properties

- success.notice.updated=공지사항 수정이 완료되었습니다.

- error.notice.update_failed=공지 수정 중 오류가 발생했습니다.

- error.notice.not_found=해당 공지사항을 찾을 수 없습니다.


1-3) NoticeSuccessCode

- NOTICE_UPDATED(HttpStatus.OK, "NOTICE_202", "success.notice.updated");


1-4) NoticeErrorCode

- NOTICE_UPDATE_FAILED(HttpStatus.BAD_REQUEST, "NOTICE_004", "error.notice.update_failed");


1-5) Controller 작업

- @RequestBody로 AdminNoiceUpdateReqDTO 타입으로 요청 받고 요청받은 데이터(title, content)와 인증객체 User, @PathVariable로 받은 noticeId를 service 계층으로 전달해 비즈니스 로직 처리하고 필요한 데이터 가져오기.

- 응답받은 데이터는 id(notice), writer, updatedDate


1-6) Service 작업

- controller로 전달받은 noticeId로 레포지토리에서 해당 공지글을 찾아서 Notice객체에 담는다.

- user 권한 체크하고 title, content 각각 null 체크하기.

- notice 업데이트하기 (Notice 엔티티에 생성한 update 메서드 사용)

- notice 데이터를 AdminNoticeUpdateResDTO로 새로 생성하여 반환.


1-7) Notice 엔티티

- 업데이트를 위한 update 메서드 생성.

- title, content, updatedDate, writer.


2. 공지사항 삭제

2-1) messages.properties

- success.notice.deleted=공지사항이 삭제되었습니다.


2-2) NoticeSuccessCode

- NOTICE_DELETED(HttpStatus.OK, "NOTICE_203", "success.notice.deleted");


2-3) AdminNoticeController

- @PathVariable로 noticeId와 @AuthenticationPrincipal user를 요청 받아 serivce 계층으로 전달해 비즈니스 로직을 처리하기.


2-4) AdminNoticeService

- 전달받은 noticeId를 repository를 통해 공지를 조회하여 Notice 객체 생성.

- 전달받은 user를 사용하여 Role이 MANAGER, ADMIN인지 체크.

- repository.delete()를 사용하여 notice 삭제.

 


commit
공지사항 수정, 공지사항 삭제 api test