Skip to content

Commit fe58ced

Browse files
authoredJul 24, 2024
Merge pull request #25 from Codiary-UMC-6th/feature/#24-update-post
Feat: 포스트 글 수정 기능 구현
2 parents 824e5db + 388b075 commit fe58ced

File tree

7 files changed

+69
-8
lines changed

7 files changed

+69
-8
lines changed
 

‎src/main/java/com/codiary/backend/global/converter/PostConverter.java

+10
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,14 @@ public static PostResponseDTO.CreatePostResultDTO toCreateResultDTO(Post post) {
2626
.postCategory(post.getPostCategory())
2727
.build();
2828
}
29+
30+
public static PostResponseDTO.UpdatePostResultDTO UpdatePostResultDTO(Post post) {
31+
return PostResponseDTO.UpdatePostResultDTO.builder()
32+
.postId(post.getPostId())
33+
.postTitle(post.getPostTitle())
34+
.postBody(post.getPostBody())
35+
.postStatus(post.getPostStatus())
36+
.postCategory(post.getPostCategory())
37+
.build();
38+
}
2939
}

‎src/main/java/com/codiary/backend/global/domain/entity/Post.java

+9
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.codiary.backend.global.domain.entity.mapping.Authors;
55
import com.codiary.backend.global.domain.entity.mapping.Categories;
66
import com.codiary.backend.global.domain.enums.PostAccess;
7+
import com.codiary.backend.global.web.dto.Post.PostRequestDTO;
78
import jakarta.persistence.*;
89
import lombok.*;
910

@@ -66,5 +67,13 @@ public void setTeam(Team team) {
6667
this.team = team;
6768
}
6869

70+
public void update(PostRequestDTO.UpdatePostDTO request) {
71+
this.postTitle = request.getPostTitle();
72+
this.postBody = request.getPostBody();
73+
this.postAccess = request.getPostAccess();
74+
this.postStatus = request.getPostStatus();
75+
this.postCategory = request.getPostCategory();
76+
}
77+
6978

7079
}

‎src/main/java/com/codiary/backend/global/service/PostService/PostCommandService.java

+3
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@ public interface PostCommandService {
77

88
// 포스트 생성
99
Post createPost(Long memberId, Long teamId,PostRequestDTO.CreatePostRequestDTO request);
10+
11+
//포스트 수정
12+
Post updatePost(Long memberId, Long postId, PostRequestDTO.UpdatePostDTO request);
1013
}

‎src/main/java/com/codiary/backend/global/service/PostService/PostCommandServiceImpl.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,32 @@ public class PostCommandServiceImpl implements PostCommandService{
2525

2626
@Override
2727
public Post createPost(Long memberId, Long teamId, PostRequestDTO.CreatePostRequestDTO request) {
28-
// DTO를 Post 객체로 변환
28+
2929
Post newPost = PostConverter.toPost(request);
3030

31-
// Member와 Team을 가져오기
3231
Member getMember = memberRepository.findById(memberId)
3332
.orElseThrow(() -> new IllegalArgumentException("Member not found"));
3433

3534
Team getTeam = teamRepository.findById(teamId)
3635
.orElseThrow(() -> new IllegalArgumentException("Team not found"));
3736

38-
// Post 객체에 Member와 Team 설정
3937
newPost.setMember(getMember);
4038
newPost.setTeam(getTeam);
4139

42-
// 저장
4340
Post savedPost = postRepository.save(newPost);
4441

4542
return savedPost;
4643
}
4744

45+
@Override
46+
public Post updatePost(Long memberId, Long postId, PostRequestDTO.UpdatePostDTO request) {
47+
Member getMember = memberRepository.findById(memberId).get();
48+
49+
Post updatePost = postRepository.findById(postId).get();
50+
updatePost.update(request);
51+
52+
return updatePost;
53+
}
4854

4955

5056

‎src/main/java/com/codiary/backend/global/web/controller/PostController.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,17 @@ public ApiResponse<PostResponseDTO> findPost(
6161
, description = "글을 수정합니다. Param으로 Id를 입력하세요"
6262
//, security = @SecurityRequirement(name = "accessToken")
6363
)
64-
public ApiResponse<PostResponseDTO> updatePost(
64+
public ApiResponse<PostResponseDTO.UpdatePostResultDTO> updatePost(
65+
@RequestParam Long memberId,
66+
@RequestBody PostRequestDTO.UpdatePostDTO request,
67+
@PathVariable Long postId
6568
){
66-
return null;
69+
return ApiResponse.onSuccess(
70+
SuccessStatus.POST_OK,
71+
PostConverter.UpdatePostResultDTO(
72+
postCommandService.updatePost(memberId, postId, request)
73+
)
74+
);
6775
}
6876

6977
// 글 삭제하기

‎src/main/java/com/codiary/backend/global/web/dto/Post/PostRequestDTO.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public class PostRequestDTO {
1313
@AllArgsConstructor
1414
@NoArgsConstructor
1515
public static class CreatePostRequestDTO {
16-
private Long memberId;
1716
private Long teamId;
1817
private String postTitle;
1918
private String postBody;
@@ -22,5 +21,19 @@ public static class CreatePostRequestDTO {
2221
private PostAccess postAccess;
2322
}
2423

24+
@Getter
25+
@Builder
26+
@AllArgsConstructor
27+
@NoArgsConstructor
28+
public static class UpdatePostDTO {
29+
private String postTitle;
30+
private String postBody;
31+
private Boolean postStatus;
32+
private String postCategory;
33+
private PostAccess postAccess;
34+
}
35+
36+
37+
2538

2639
}

‎src/main/java/com/codiary/backend/global/web/dto/Post/PostResponseDTO.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ public static class CreatePostResultDTO {
1919
String postBody;
2020
Boolean postStatus;
2121
String postCategory;
22-
//LocalDateTime createdAt;
2322
}
23+
24+
@Getter
25+
@Builder
26+
@NoArgsConstructor
27+
@AllArgsConstructor
28+
public static class UpdatePostResultDTO {
29+
Long postId;
30+
String postTitle;
31+
String postBody;
32+
Boolean postStatus;
33+
String postCategory;
34+
}
35+
2436
}

0 commit comments

Comments
 (0)