Skip to content

Commit 6908a89

Browse files
authored
Refactor#160 PostController description 작성 (#166)
* refactor : 게시글 수정 DTO 변경 Create -> Modify * PostController description 작성
1 parent 945ee9c commit 6908a89

5 files changed

Lines changed: 38 additions & 21 deletions

File tree

back/src/main/java/com/back/domain/post/post/controller/PostController.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class PostController {
2626
private final PostDetailFacade postDetailFacade;
2727

2828

29-
@Operation(summary = "게시글 조회 - 페이징 처리")
29+
@Operation(summary = "게시글 조회 - 페이징 처리", description = "keyword는 null 일수 있습니다. keyword는 title, member name(작성자 이름) 검색에 활용됩니다. \n 페이지는 10개씩 보여줍니다.")
3030
@GetMapping("/page/{postType}")
3131
public RsData<PostPagingResponse> getPostWithPage(
3232
@PathVariable Post.PostType postType,
@@ -40,7 +40,11 @@ public RsData<PostPagingResponse> getPostWithPage(
4040
return new RsData<>("200", "게시글이 조회 되었습니다.", resDto);
4141
}
4242

43-
@Operation(summary = "게시글 생성 ")
43+
@Operation(summary = "게시글 생성 ", description = "postType : 게시글 타입(url 분기시 활용, \"QUESTIONPOST, PRACTICEPOST, INFORMATIONPOST\"만 입력 가능) \n" +
44+
"title : 제목 \n" +
45+
"content : 내용 \n" +
46+
"job : 직업(PRACTICEPOST 작성 시 필수) \n" +
47+
"example) { \"postType\": \"QUESTIONPOST\", \"title\": \"게시글 제목\", \"content\": \"게시글 내용\", \"job\": \"백엔드 개발자\" }")
4448
@PostMapping
4549
public RsData<PostCreateResponse> createPost(
4650
@Valid @RequestBody PostCreateRequest postCreateRequest
@@ -52,7 +56,7 @@ public RsData<PostCreateResponse> createPost(
5256
return new RsData<>("200", "게시글이 성공적으로 생성되었습니다.", postCreateResponse);
5357
}
5458

55-
@Operation(summary = "게시글 다건 조회")
59+
@Operation(summary = "게시글 다건 조회", description = "백오피스에서 필요시 사용, 페이징 처리 없음")
5660
@GetMapping("/all")
5761
public RsData<List<PostAllResponse>> getAllPost() {
5862
List<PostAllResponse> postAllResponse = postService.getAllPostResponse();
@@ -61,7 +65,7 @@ public RsData<List<PostAllResponse>> getAllPost() {
6165
return new RsData<>("200", "게시글 다건 조회 성공", postAllResponse);
6266
}
6367

64-
@Operation(summary = "게시글 단건 조회")
68+
@Operation(summary = "게시글 단건 조회", description = "백오피스에서 필요시 사용, content 내용 없음. 상세페이지 조회는 /post/detail/{post_id} 사용")
6569
@GetMapping("/{post_id}")
6670
public RsData<PostSingleResponse> getSinglePost(@PathVariable Long post_id) {
6771
PostSingleResponse postSingleResponse = postService.makePostSingleResponse(post_id);
@@ -81,12 +85,12 @@ public RsData<Void> removePost(@PathVariable Long post_id) {
8185
return new RsData<>("200", "게시글 삭제 성공", null);
8286
}
8387

84-
@Operation(summary = "게시글 수정")
88+
@Operation(summary = "게시글 수정", description = "title, content은 공백이거나 null 일 수 없습니다. 글자수 제한은 없습니다. ")
8589
@PutMapping("/{post_id}")
8690
public RsData<Void> updatePost(@PathVariable Long post_id
87-
,@Valid @RequestBody PostCreateRequest postCreateRequest) {
91+
,@Valid @RequestBody PostModifyRequest postModifyRequest) {
8892
Member member = rq.getActor();
89-
postService.updatePost(post_id, member, postCreateRequest);
93+
postService.updatePost(post_id, member, postModifyRequest);
9094

9195
return new RsData<>("200", "게시글 수정 성공", null);
9296
}
@@ -114,7 +118,7 @@ public RsData<PostLikedResponse> disLikePost(@PathVariable Long post_id) {
114118
}
115119

116120

117-
@Operation(summary = "게시글 상세페이지")
121+
@Operation(summary = "게시글 상세페이지", description = "사용자 단건 조회시 사용")
118122
@GetMapping("/detail/{post_id}")
119123
public RsData<PostDetailResponse> getPostDetail(@PathVariable Long post_id) {
120124

back/src/main/java/com/back/domain/post/post/dto/PostModifyRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44

5-
65
public record PostModifyRequest(
76
String title,
87
String content) {

back/src/main/java/com/back/domain/post/post/service/PostService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,20 @@ public void removePost(Long postId, Member member) {
7272
}
7373

7474
@Transactional
75-
public void updatePost(long postId, Member member, @Valid PostCreateRequest postCreateRequest) {
75+
public void updatePost(long postId, Member member, @Valid PostModifyRequest postModifyRequest) {
7676
Post post = findById(postId);
7777
if (!post.isAuthor(member)) throw new ServiceException("400", "수정 권한이 없습니다.");
7878

79-
if ( postCreateRequest.title() == null || postCreateRequest.title().isBlank()) {
79+
if ( postModifyRequest.title() == null || postModifyRequest.title().isBlank()) {
8080
throw new ServiceException("400", "제목을 입력해주세요.");
8181
}
8282

83-
if ( postCreateRequest.content() == null || postCreateRequest.content().isBlank()) {
83+
if ( postModifyRequest.content() == null || postModifyRequest.content().isBlank()) {
8484
throw new ServiceException("400", "내용을 입력해주세요.");
8585
}
8686

87-
post.updateTitle(postCreateRequest.title());
88-
post.updateContent(postCreateRequest.content());
87+
post.updateTitle(postModifyRequest.title());
88+
post.updateContent(postModifyRequest.content());
8989

9090
postRepository.save(post);
9191
}

back/src/test/java/com/back/domain/post/post/controller/PostControllerTest.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,22 @@ void t10() throws Exception {
402402
@Test
403403
@DisplayName("게시글 수정 실패 - title blank")
404404
void t11() throws Exception {
405+
mvc.perform(
406+
post("/post")
407+
.contentType(MediaType.APPLICATION_JSON)
408+
.content("""
409+
{
410+
"memberId": 1,
411+
"postType": "INFORMATIONPOST",
412+
"title": "삭제용 제목",
413+
"content": "삭제용 내용"
414+
}
415+
""")
416+
);
417+
405418
ResultActions resultActions = mvc
406419
.perform(
407-
put("/post/{post_id}", 6L)
420+
put("/post/{post_id}", 9L)
408421
.contentType(MediaType.APPLICATION_JSON)
409422
.content("""
410423
{
@@ -418,8 +431,8 @@ void t11() throws Exception {
418431
resultActions
419432
.andExpect(handler().handlerType(PostController.class))
420433
.andExpect(handler().methodName("updatePost"))
421-
.andExpect(jsonPath("$.resultCode").value("400-1"))
422-
.andExpect(jsonPath("$.msg").value("title-NotBlank-제목은 null 혹은 공백일 수 없습니다."));
434+
.andExpect(jsonPath("$.resultCode").value("400"))
435+
.andExpect(jsonPath("$.msg").value("제목을 입력해주세요."));
423436
}
424437

425438
@Test

back/src/test/java/com/back/domain/post/post/service/PostServiceTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.back.domain.member.member.entity.Member;
44
import com.back.domain.post.post.dto.PostCreateRequest;
55
import com.back.domain.post.post.dto.PostDto;
6+
import com.back.domain.post.post.dto.PostModifyRequest;
67
import com.back.domain.post.post.entity.Post;
78
import com.back.domain.post.post.repository.PostRepository;
89
import com.back.fixture.MemberFixture;
@@ -202,7 +203,7 @@ void updatePost_author_success() {
202203
Member author = MemberFixture.create(1L, "author@test.com", "Author", "password", Member.Role.MENTEE);
203204
Post post = createPost("기존 제목", "기존 내용", author, Post.PostType.INFORMATIONPOST);
204205
Long postId = 1L;
205-
PostCreateRequest updateRequest = new PostCreateRequest("INFORMATIONPOST","새 제목","새 내용","");
206+
PostModifyRequest updateRequest = new PostModifyRequest("새 제목","새 내용");
206207

207208
when(postRepository.findById(postId)).thenReturn(Optional.of(post));
208209
when(postRepository.save(any(Post.class))).thenReturn(post);
@@ -224,7 +225,7 @@ void updatePost_notAuthor_failure() {
224225
Member otherUser = MemberFixture.create(2L, "other@test.com", "Other", "password", Member.Role.MENTEE);
225226
Post post = createPost("제목", "내용", author, Post.PostType.INFORMATIONPOST);
226227
Long postId = 1L;
227-
PostCreateRequest updateRequest = new PostCreateRequest("INFORMATIONPOST","새 내용","새 제목","");
228+
PostModifyRequest updateRequest = new PostModifyRequest("새 내용","새 제목");
228229

229230

230231
when(postRepository.findById(postId)).thenReturn(Optional.of(post));
@@ -244,7 +245,7 @@ void updatePost_nullOrBlankTitle_failure() {
244245
Member author = MemberFixture.create(1L, "author@test.com", "Author", "password", Member.Role.MENTEE);
245246
Post post = createPost("제목", "내용", author, Post.PostType.INFORMATIONPOST);
246247
Long postId = 1L;
247-
PostCreateRequest updateRequest = new PostCreateRequest("INFORMATIONPOST","","새 내용","");
248+
PostModifyRequest updateRequest = new PostModifyRequest("","새 내용");
248249

249250
when(postRepository.findById(postId)).thenReturn(Optional.of(post));
250251

@@ -263,7 +264,7 @@ void updatePost_nullOrBlankContent_failure() {
263264
Member author = MemberFixture.create(1L, "author@test.com", "Author", "password", Member.Role.MENTEE);
264265
Post post = createPost("제목", "내용", author, Post.PostType.INFORMATIONPOST);
265266
Long postId = 1L;
266-
PostCreateRequest updateRequest = new PostCreateRequest("INFORMATIONPOST","새 제목","","");
267+
PostModifyRequest updateRequest = new PostModifyRequest("새 제목","");
267268

268269
when(postRepository.findById(postId)).thenReturn(Optional.of(post));
269270

0 commit comments

Comments
 (0)