Skip to content

Commit

Permalink
Merge pull request #52 from UMC5th-bias/feat/#49
Browse files Browse the repository at this point in the history
[FEAT #49] 댓글(자유게시판&성지순례) 수정&삭제
  • Loading branch information
jorippppong authored Feb 2, 2024
2 parents 5cbf3de + 5e9a578 commit a8d27e0
Show file tree
Hide file tree
Showing 25 changed files with 514 additions and 203 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ dependencies {
//image
implementation 'com.google.cloud:google-cloud-storage:2.20.1'
implementation 'org.springframework.cloud:spring-cloud-gcp-starter-storage:1.2.8.RELEASE'
implementation 'net.coobird:thumbnailator:0.4.14'
}

tasks.named('bootBuildImage') {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package com.favoriteplace.app.controller;

import com.favoriteplace.app.domain.Member;
import com.favoriteplace.app.dto.community.CommentResponseDto;
import com.favoriteplace.app.dto.community.GuestBookRequestDto;
import com.favoriteplace.app.dto.community.GuestBookResponseDto;
import com.favoriteplace.app.dto.community.PostResponseDto;
import com.favoriteplace.app.service.community.CommentCommandService;
import com.favoriteplace.app.service.community.CommentQueryService;
import com.favoriteplace.global.util.SecurityUtil;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/posts/guestbooks")
@RequiredArgsConstructor
public class GuestBookCommentController {
private final SecurityUtil securityUtil;
private final CommentQueryService commentQueryService;
private final CommentCommandService commentCommandService;

@GetMapping("/my-comments")
public GuestBookResponseDto.MyGuestBookCommentDto getMyComments(
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size
){
Member member = securityUtil.getUser();
Page<GuestBookResponseDto.MyGuestBookComment> myComments = commentQueryService.getMyGuestBookComments(member, page, size);
return GuestBookResponseDto.MyGuestBookCommentDto.builder()
.page((long) (myComments.getNumber()+1))
.size((long) myComments.getSize())
.comment(myComments.getContent())
.build();
}

@GetMapping("/{guestbook_id}/comments")
public CommentResponseDto.PostCommentDto getGuestBookComments(
@PathVariable("guestbook_id") Long guestbookId,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size,
HttpServletRequest request
){
Member member = securityUtil.getUserFromHeader(request);
Page<CommentResponseDto.PostComment> comments = commentQueryService.getGuestBookComments(page, size, member, guestbookId);
return CommentResponseDto.PostCommentDto.builder()
.page((long) comments.getNumber() +1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@PostMapping("/{guestbook_id}/comments")
public ResponseEntity<PostResponseDto.SuccessResponseDto> createGuestBookComment(
@PathVariable("guestbook_id") Long guestbookId,
@RequestBody GuestBookRequestDto.GuestBookCommentDto guestBookCommentDto
){
Member member = securityUtil.getUser();
commentCommandService.createGuestBookComment(member, guestbookId, guestBookCommentDto);
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글이 성공적으로 등록했습니다.").build(),
HttpStatus.OK
);
}

@PutMapping("/comments/{comment_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> modifyGuestBookComment(
@PathVariable("comment_id") Long commentId,
@RequestBody GuestBookRequestDto.GuestBookCommentDto guestBookCommentDto
){
Member member = securityUtil.getUser();
commentCommandService.modifyGuestBookComment(member, commentId, guestBookCommentDto.getContent());
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글 성공적으로 수정했습니다.").build(),
HttpStatus.OK
);
}

@DeleteMapping("/comments/{comment_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> deleteGuestBookComment(
@PathVariable("comment_id") Long commentId
){
Member member = securityUtil.getUser();
commentCommandService.deleteGuestBookComment(member, commentId);
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글 성공적으로 삭제했습니다.").build(),
HttpStatus.OK
);
}


}
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package com.favoriteplace.app.controller;

import com.favoriteplace.app.domain.Member;
import com.favoriteplace.app.dto.community.CommentResponseDto;
import com.favoriteplace.app.dto.community.GuestBookRequestDto;
import com.favoriteplace.app.dto.community.GuestBookResponseDto;
import com.favoriteplace.app.dto.community.PostResponseDto;
import com.favoriteplace.app.service.*;
import com.favoriteplace.app.service.MemberService;
import com.favoriteplace.app.service.PilgrimageQueryService;
import com.favoriteplace.app.service.community.CommentQueryService;
import com.favoriteplace.app.service.community.GuestBookCommandService;
import com.favoriteplace.app.service.community.GuestBookQueryService;
import com.favoriteplace.app.service.community.LikedPostService;
import com.favoriteplace.global.util.SecurityUtil;
import com.google.api.Http;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
Expand All @@ -25,9 +28,9 @@
public class GuestBookController {
private final GuestBookQueryService guestBookQueryService;
private final GuestBookCommandService guestBookCommandService;
private final CommentService commentService;
private final MemberService memberService;
private final PilgrimageQueryService pilgrimageQueryService;
private final LikedPostService likedPostService;
private final SecurityUtil securityUtil;

@GetMapping()
Expand All @@ -44,22 +47,8 @@ public GuestBookResponseDto.TotalGuestBookDto getTotalGuestBooks(
.build();
}

@GetMapping("/my-comments")
public GuestBookResponseDto.MyGuestBookCommentDto getMyComments(
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size
){
Member member = securityUtil.getUser();
Page<GuestBookResponseDto.MyGuestBookComment> myComments = commentService.getMyGuestBookComments(member, page, size);
return GuestBookResponseDto.MyGuestBookCommentDto.builder()
.page((long) (myComments.getNumber()+1))
.size((long) myComments.getSize())
.comment(myComments.getContent())
.build();
}

@GetMapping("/my-posts")
public GuestBookResponseDto.MyGuestBookDto getMyPosts(
public GuestBookResponseDto.MyGuestBookDto getMyGuestBooks(
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size
){
Expand All @@ -85,22 +74,6 @@ public GuestBookResponseDto.DetailGuestBookDto getDetailGuestBook(
.build();
}

@GetMapping("/{guestbook_id}/comments")
public CommentResponseDto.PostCommentDto getGuestBookComments(
@PathVariable("guestbook_id") Long guestbookId,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size,
HttpServletRequest request
){
Member member = securityUtil.getUserFromHeader(request);
Page<CommentResponseDto.PostComment> comments = commentService.getGuestBookComments(page, size, member, guestbookId);
return CommentResponseDto.PostCommentDto.builder()
.page((long) comments.getNumber() +1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@PatchMapping("/{guestbook_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> modifyGuestBook(
@PathVariable("guestbook_id") Long guestbookId,
Expand All @@ -127,25 +100,12 @@ public ResponseEntity<PostResponseDto.SuccessResponseDto> deleteGuestBook(
);
}

@PostMapping("/{guestbook_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> createGuestBookComment(
@PathVariable("guestbook_id") Long guestbookId,
@RequestBody GuestBookRequestDto.GuestBookCommentDto guestBookCommentDto
){
Member member = securityUtil.getUser();
guestBookCommandService.createGuestBookComment(member, guestbookId, guestBookCommentDto);
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("성지순례 인증글에 댓글이 성공적으로 추가되었습니다.").build(),
HttpStatus.OK
);
}

@PostMapping("/{guestbook_id}/like")
public ResponseEntity<PostResponseDto.SuccessResponseDto> modifyGuestBookLike(
@PathVariable("guestbook_id") Long guestbookId
){
Member member = securityUtil.getUser();
String message = guestBookCommandService.modifyGuestBookLike(member, guestbookId);
String message = likedPostService.modifyGuestBookLike(member, guestbookId);
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message(message).build(),
HttpStatus.OK
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package com.favoriteplace.app.controller;

import com.favoriteplace.app.domain.Member;
import com.favoriteplace.app.dto.community.CommentRequestDto;
import com.favoriteplace.app.dto.community.CommentResponseDto;
import com.favoriteplace.app.dto.community.PostResponseDto;
import com.favoriteplace.app.service.community.CommentCommandService;
import com.favoriteplace.app.service.community.CommentQueryService;
import com.favoriteplace.global.util.SecurityUtil;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/posts/free")
@RequiredArgsConstructor
public class PostCommentController {

private final SecurityUtil securityUtil;
private final CommentQueryService commentQueryService;
private final CommentCommandService commentCommandService;

@GetMapping("/my-comments")
public PostResponseDto.MyCommentDto getMyComments(
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size
){
Member member = securityUtil.getUser();
Page<PostResponseDto.MyComment> comments = commentQueryService.getMyPostComments(member, page, size);
return PostResponseDto.MyCommentDto.builder()
.page((long) comments.getNumber()+1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@GetMapping("/{post_id}/comments")
public CommentResponseDto.PostCommentDto getPostComments(
@PathVariable("post_id") Long postId,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size,
HttpServletRequest request
){
Member member = securityUtil.getUserFromHeader(request);
Page<CommentResponseDto.PostComment> comments = commentQueryService.getPostComments(member, page, size, postId);
return CommentResponseDto.PostCommentDto.builder()
.page((long)comments.getNumber()+1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@PostMapping("/{post_id}/comments")
public ResponseEntity<PostResponseDto.SuccessResponseDto> createPostComment(
@PathVariable("post_id") long postId,
@RequestBody CommentRequestDto dto
){
Member member = securityUtil.getUser();
commentCommandService.createPostComment(member, postId, dto.getContent());
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글을 성공적으로 등록했습니다.").build(),
HttpStatus.OK
);
}

@PutMapping("/comments/{comment_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> modifyPostComment(
@PathVariable("comment_id") long commentId,
@RequestBody CommentRequestDto dto
){
Member member = securityUtil.getUser();
commentCommandService.modifyPostComment(member, commentId, dto.getContent());
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글을 성공적으로 수정했습니다.").build(),
HttpStatus.OK
);
}

@DeleteMapping("/comments/{comment_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> deletePostComment(
@PathVariable("comment_id") long commentId
){
Member member = securityUtil.getUser();
commentCommandService.deletePostComment(member, commentId);
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글을 성공적으로 삭제했습니다.").build(),
HttpStatus.OK
);
}


}
49 changes: 3 additions & 46 deletions src/main/java/com/favoriteplace/app/controller/PostController.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.favoriteplace.app.controller;

import com.favoriteplace.app.domain.Member;
import com.favoriteplace.app.dto.community.CommentRequestDto;
import com.favoriteplace.app.dto.community.CommentResponseDto;
import com.favoriteplace.app.dto.community.PostRequestDto;
import com.favoriteplace.app.dto.community.PostResponseDto;
import com.favoriteplace.app.service.*;
import com.favoriteplace.app.service.community.LikedPostService;
import com.favoriteplace.app.service.community.PostCommandService;
import com.favoriteplace.app.service.community.PostQueryService;
import com.favoriteplace.global.util.SecurityUtil;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
Expand All @@ -25,7 +26,6 @@ public class PostController {
private final MemberService memberService;
private final PostQueryService postQueryService;
private final PostCommandService postCommandService;
private final CommentService commentService;
private final LikedPostService likedPostService;
private final SecurityUtil securityUtil;

Expand All @@ -41,22 +41,6 @@ public PostResponseDto.PostDetailResponseDto getPostDetail(
.build();
}

@GetMapping("/{post_id}/comments")
public CommentResponseDto.PostCommentDto getPostComments(
@PathVariable("post_id") Long postId,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size,
HttpServletRequest request
){
Member member = securityUtil.getUserFromHeader(request);
Page<CommentResponseDto.PostComment> comments = commentService.getPostComments(member, page, size, postId);
return CommentResponseDto.PostCommentDto.builder()
.page((long)comments.getNumber()+1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@GetMapping("/my-posts")
public PostResponseDto.MyPostResponseDto getMyPosts(
@RequestParam(required = false, defaultValue = "1") int page,
Expand All @@ -71,20 +55,6 @@ public PostResponseDto.MyPostResponseDto getMyPosts(
.build();
}

@GetMapping("/my-comments")
public PostResponseDto.MyCommentDto getMyComments(
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int size
){
Member member = securityUtil.getUser();
Page<PostResponseDto.MyComment> comments = commentService.getMyPostComments(member, page, size);
return PostResponseDto.MyCommentDto.builder()
.page((long) comments.getNumber()+1)
.size((long) comments.getSize())
.comment(comments.getContent())
.build();
}

@GetMapping("")
public PostResponseDto.MyPostResponseDto getTotalPost(
@RequestParam(required = false, defaultValue = "1") int page,
Expand Down Expand Up @@ -123,19 +93,6 @@ public ResponseEntity<PostResponseDto.SuccessResponseDto> deletePost(
);
}

@PostMapping("/{post_id}")
public ResponseEntity<PostResponseDto.SuccessResponseDto> createPostComment(
@PathVariable("post_id") long postId,
@RequestBody CommentRequestDto dto
){
Member member = securityUtil.getUser();
commentService.createComment(member, postId, dto.getContent());
return new ResponseEntity<>(
PostResponseDto.SuccessResponseDto.builder().message("댓글을 성공적으로 등록했습니다.").build(),
HttpStatus.OK
);
}

@PutMapping("/{post_id}/like")
public ResponseEntity<PostResponseDto.SuccessResponseDto> modifyPostLike(
@PathVariable("post_id") long postId
Expand Down
Loading

0 comments on commit a8d27e0

Please sign in to comment.