JisooPyo / KP3C-backoffice-project

스레드와 트위터를 참고하여 SNS 사이트를 만들어보고 백오피스까지 구현해보는 프로젝트
1 stars 2 forks source link

[Feature] Post 관련 메서드 구현 #31

Closed JisooPyo closed 1 year ago

JisooPyo commented 1 year ago

관련 Issue : #12

변경 사항

image

Todo List

12번 이슈 모두 해결

Check List

- [X] 포스트맨으로 체크해 보았나요? - [X] 다른 팀원의 PR을 보고 코드 리뷰를 남겨 보았나요? - [x] PR 수고하셨습니다!! - [X] 오늘도 멋있었나요? 당연하지 9조가 제일 멋있9~ ## 과제에 비해 바뀐 점! ### 1. * 과제에서 썼던 코드 ```java postRepository.delete(post); ``` * 바뀐 코드 ```java postRepository.deleteById(id); ``` 기존 코드를 id값으로 db에서 찾아서 없애게끔 하였다. ### 2. * 과제에서 썼던 코드 ```java private Post findPost(long id) { return postRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("존재하지 않는 게시글입니다.") ); } ``` * 바뀐 코드 ```java private Post findPost(long id) { return postRepository.findById(id).orElseThrow(() -> new EntityNotFoundException("존재하지 않는 게시글입니다.") ); } ``` EntityNotFoundException이라는 예외가 있어서 그쪽이 이 메서드에 더 잘 맞는 거 같아서 발생시킬 예외 변경 ### 3. 원래 블로그에서는 전체 포스트 조회와 선택한 포스트 조회 메서드를 인증을 받지 않아도 요청할 수 있게끔 해놓고 싶어서 API를 Read하는 부분과 Create, Update, Delete 부분을 다르게 적용시켰는데 (ex. Read 하는 부분은 앞에 /view를 붙여서 /view로 시작되는 메서드는 인증 절차를 거치지 않게 하였다.)

이번 프로젝트에서는 SNS 프로젝트인 만큼, 회원이 아니면 글을 볼 수 없게 해놓아야 해서 API를 비슷하게 다 통일시켰다. ( ex. /posts, /post, /post/{id} ) ### 4. GlobalExceptionHandler가 있으므로 Controller단에서 try-catch를 해주지 않아 조금 더 코드가 간결해졌다.