Skip to content

Commit bdaf9dd

Browse files
authored
✨ feat: 공고 수정 기능 예외 처리 추가 (#59)
1 parent e86b0c0 commit bdaf9dd

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/main/java/com/sponus/sponusbe/domain/announcement/entity/Announcement.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,11 @@ public void increaseViewCount() {
6767
this.viewCount++;
6868
}
6969

70-
public void update(String title, AnnouncementType type, AnnouncementCategory category, String content) {
70+
public void update(String title, AnnouncementType type, AnnouncementCategory category, String content, AnnouncementStatus status) {
7171
this.title = title == null ? this.title : title;
7272
this.type = type == null ? this.type : type;
7373
this.category = category == null ? this.category : category;
7474
this.content = content == null ? this.content : content;
75+
this.status = (status != null) ? status : this.status;
7576
}
7677
}

src/main/java/com/sponus/sponusbe/domain/announcement/exception/AnnouncementErrorCode.java

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public enum AnnouncementErrorCode implements BaseErrorCode {
1414
ANNOUNCEMENT_ERROR(HttpStatus.BAD_REQUEST, "ANC4000", "공지사항 관련 에러"),
1515
ANNOUNCEMENT_ALREADY_DELETED(HttpStatus.BAD_REQUEST, "ANC4001", "이미 삭제된 공지사항입니다."),
1616
INVALID_ORGANIZATION(HttpStatus.BAD_REQUEST, "ANC4002", "해당 단체의 공고가 아닙니다."),
17+
INVALID_ANNOUNCEMENT_STATUS(HttpStatus.BAD_REQUEST, "ANC4003", "해당 상태의 공고는 수정할 수 없습니다."),
1718
ANNOUNCEMENT_NOT_FOUND(HttpStatus.NOT_FOUND, "ANC4040", "해당 공지사항이 존재하지 않습니다.");
1819

1920
private final HttpStatus httpStatus;

src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,12 @@ public AnnouncementUpdateResponse updateAnnouncement(Organization authOrganizati
6464
final Announcement announcement = announcementRepository.findById(proposeId)
6565
.orElseThrow(() -> new AnnouncementException(AnnouncementErrorCode.ANNOUNCEMENT_NOT_FOUND));
6666

67+
if (announcement.getStatus() != AnnouncementStatus.POSTED)
68+
throw new AnnouncementException(AnnouncementErrorCode.INVALID_ANNOUNCEMENT_STATUS);
6769
if (!isOrganizationsAnnouncement(authOrganization.getId(), announcement))
6870
throw new AnnouncementException(AnnouncementErrorCode.INVALID_ORGANIZATION);
6971

70-
announcement.update(request.title(), request.type(), request.category(), request.content());
72+
announcement.update(request.title(), request.type(), request.category(), request.content(), request.status());
7173
announcementRepository.save(announcement);
7274
return AnnouncementUpdateResponse.from(announcement);
7375
}

0 commit comments

Comments
 (0)