Skip to content

Commit

Permalink
fix: 공고 수정 시 이미지가 없는 경우에는 업데이트하지 않음
Browse files Browse the repository at this point in the history
  • Loading branch information
kimday0326 committed Feb 11, 2024
1 parent 8b13945 commit 2c86223
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public ApiResponse<AnnouncementUpdateResponse> updateAnnouncement(
@AuthOrganization Organization authOrganization,
@PathVariable Long announcementId,
@RequestPart("request") @Valid AnnouncementUpdateRequest request,
@RequestPart(value = "images") @Valid List<MultipartFile> images
@RequestPart(value = "images", required = false) @Valid List<MultipartFile> images
) {
return ApiResponse.onSuccess(announcementService.updateAnnouncement(
authOrganization,
Expand Down
Original file line number Diff line number Diff line change
@@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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", "해당 공고가 존재하지 않습니다.");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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);
}
Expand Down

0 comments on commit 2c86223

Please sign in to comment.