From 2c862233e8db86104c49aba21e6978877582b7d6 Mon Sep 17 00:00:00 2001 From: marooo326 Date: Sun, 11 Feb 2024 16:32:40 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B3=B5=EA=B3=A0=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20=EC=8B=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=EA=B0=80=20=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AnnouncementController.java | 2 +- .../request/AnnouncementUpdateRequest.java | 22 ------------------- .../exception/AnnouncementErrorCode.java | 2 +- .../service/AnnouncementService.java | 8 +++++-- 4 files changed, 8 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/sponus/sponusbe/domain/announcement/controller/AnnouncementController.java b/src/main/java/com/sponus/sponusbe/domain/announcement/controller/AnnouncementController.java index f8803f31..6fcbc1ba 100644 --- a/src/main/java/com/sponus/sponusbe/domain/announcement/controller/AnnouncementController.java +++ b/src/main/java/com/sponus/sponusbe/domain/announcement/controller/AnnouncementController.java @@ -98,7 +98,7 @@ public ApiResponse updateAnnouncement( @AuthOrganization Organization authOrganization, @PathVariable Long announcementId, @RequestPart("request") @Valid AnnouncementUpdateRequest request, - @RequestPart(value = "images") @Valid List images + @RequestPart(value = "images", required = false) @Valid List images ) { return ApiResponse.onSuccess(announcementService.updateAnnouncement( authOrganization, diff --git a/src/main/java/com/sponus/sponusbe/domain/announcement/dto/request/AnnouncementUpdateRequest.java b/src/main/java/com/sponus/sponusbe/domain/announcement/dto/request/AnnouncementUpdateRequest.java index de87f380..391c79fb 100644 --- a/src/main/java/com/sponus/sponusbe/domain/announcement/dto/request/AnnouncementUpdateRequest.java +++ b/src/main/java/com/sponus/sponusbe/domain/announcement/dto/request/AnnouncementUpdateRequest.java @@ -1,39 +1,17 @@ package com.sponus.sponusbe.domain.announcement.dto.request; -import static com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus.*; - -import com.sponus.sponusbe.domain.announcement.entity.Announcement; import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementCategory; import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus; import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementType; -import com.sponus.sponusbe.domain.organization.entity.Organization; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Builder; @Builder public record AnnouncementUpdateRequest( - @NotBlank(message = "[ERROR] 타이틀 입력은 필수 입니다.") String title, - @NotNull(message = "[ERROR] 유형 입력은 필수 입니다.") AnnouncementType type, - @NotNull(message = "[ERROR] 카테코리 입력은 필수 입니다.") AnnouncementCategory category, - @NotBlank(message = "[ERROR] 내용 입력은 필수 입니다.") String content, - AnnouncementStatus status ) { - - public Announcement toEntity(Organization writer) { - return Announcement.builder() - .writer(writer) - .title(title) - .type(type) - .category(category) - .content(content) - .status(OPENED) - .build(); - } } diff --git a/src/main/java/com/sponus/sponusbe/domain/announcement/exception/AnnouncementErrorCode.java b/src/main/java/com/sponus/sponusbe/domain/announcement/exception/AnnouncementErrorCode.java index f32a252b..a7600f13 100644 --- a/src/main/java/com/sponus/sponusbe/domain/announcement/exception/AnnouncementErrorCode.java +++ b/src/main/java/com/sponus/sponusbe/domain/announcement/exception/AnnouncementErrorCode.java @@ -14,7 +14,7 @@ public enum AnnouncementErrorCode implements BaseErrorCode { ANNOUNCEMENT_ERROR(HttpStatus.BAD_REQUEST, "ANC4000", "공고 관련 에러"), ANNOUNCEMENT_ALREADY_DELETED(HttpStatus.BAD_REQUEST, "ANC4001", "이미 삭제된 공지사항입니다."), INVALID_ORGANIZATION(HttpStatus.BAD_REQUEST, "ANC4002", "해당 단체의 공고가 아닙니다."), - INVALID_ANNOUNCEMENT_STATUS(HttpStatus.BAD_REQUEST, "ANC4003", "해당 상태의 공고는 수정할 수 없습니다."), + CLOSED_ANNOUNCEMENT_STATUS(HttpStatus.BAD_REQUEST, "ANC4003", "마감된 공고는 수정할 수 없습니다."), ANNOUNCEMENT_NOT_IN_PROGRESS(HttpStatus.BAD_REQUEST, "ANC4004", "진행 중인 공고가 아닙니다."), ANNOUNCEMENT_NOT_FOUND(HttpStatus.NOT_FOUND, "ANC4040", "해당 공고가 존재하지 않습니다."); diff --git a/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java b/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java index 802c7e6d..f0c1d526 100644 --- a/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java +++ b/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java @@ -82,7 +82,7 @@ public AnnouncementUpdateResponse updateAnnouncement( .orElseThrow(() -> new AnnouncementException(AnnouncementErrorCode.ANNOUNCEMENT_NOT_FOUND)); if (announcement.getStatus() != AnnouncementStatus.OPENED) - throw new AnnouncementException(AnnouncementErrorCode.INVALID_ANNOUNCEMENT_STATUS); + throw new AnnouncementException(AnnouncementErrorCode.CLOSED_ANNOUNCEMENT_STATUS); if (!isOrganizationsAnnouncement(authOrganization.getId(), announcement)) throw new AnnouncementException(AnnouncementErrorCode.INVALID_ORGANIZATION); @@ -93,7 +93,11 @@ public AnnouncementUpdateResponse updateAnnouncement( request.content(), request.status() ); - updateAnnouncementImages(announcement, images); + + // 공고는 이미지가 필수이므로, 이미지가 없는 경우에는 업데이트하지 않음 + if (images != null) + updateAnnouncementImages(announcement, images); + announcementRepository.save(announcement); return AnnouncementUpdateResponse.from(announcement); }