Skip to content
This repository was archived by the owner on Jan 11, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions src/main/java/com/example/spot/domain/Post.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public class Post extends BaseEntity {
@JoinColumn(name = "member_id")
private Member member;

public void edit(PostUpdateRequest request, List<String> images) {
public void edit(PostUpdateRequest request, List<String> images, String existingImage) {
if (StringUtils.hasText(request.getTitle())) {
this.title = request.getTitle();
}
Expand All @@ -78,13 +78,25 @@ public void edit(PostUpdateRequest request, List<String> images) {

this.isAnonymous = request.isAnonymous();

this.image = (images != null && !images.isEmpty() && StringUtils.hasText(images.get(0)))
? images.get(0)
: null;
updateImage(images, existingImage);

if (request.getType() != null) {
this.board = request.getType();
}

if (request.getType() != null) {
this.board = request.getType();
}
}

private void updateImage(List<String> images, String existingImage) {
if (StringUtils.hasText(existingImage)) {
this.image = existingImage;
} else if (images != null && !images.isEmpty() && StringUtils.hasText(images.get(0))) {
this.image = images.get(0);
} else {
this.image = null;
}
Comment on lines +86 to +99
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 이 부분 참고해서 수정해 올리겠습니다!! 고생하셨습니다 😄

}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public PostCreateResponse updatePost(Long memberId, Long postId, PostUpdateReque
}

// 게시글 수정
post.edit(postUpdateRequest, getImageUrls(postUpdateRequest.getImage()));
post.edit(postUpdateRequest, getImageUrls(postUpdateRequest.getImage()), postUpdateRequest.getExistingImage());

// 수정된 게시글 정보 반환
return PostCreateResponse.toDTO(post);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,8 @@ public ApiResponse<PostAnnouncementResponse> getPostAnnouncement() {
@Tag(name = "게시판", description = "게시판 관련 API")
@Operation(
summary = "[게시판] 게시글 수정 API",
description = "게시글 Id를 받아 게시글을 수정합니다.",
description = "게시글 Id를 받아 게시글을 수정합니다. existingImage는 기존 이미지 URL입니다. 수정할 이미지가 없을 경우 null로 보내주세요. 요청 시, 요청 타입은 Multipart/form-data로 보내야 합니다."
+ "\n" + "existingImage와 image 둘 중 하나만 보내주세요. 둘 다 보내면 기존 이미지로 덮어씌워집니다.",
security = @SecurityRequirement(name = "accessToken")
)
@PatchMapping(value = "/{postId}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ public class PostUpdateRequest {

private MultipartFile image;

private String existingImage;

public Board getType() {
return Board.findByValue(type);
}
Expand Down