Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3주차(필수,선택) : user엔티티 추가, 공개여부 기능 추가, 페이징 처리 추가 #7

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

YangDaJin0104
Copy link
Collaborator

🔍️ User 정보 추가

  • DiaryEntity에 작성자 정보를 참조할 수 있는 UserEntity 필드를 추가했습니다. 이를 위해 다이어리 생성 시 UserEntity 객체가 필요하며, UserRepository에서 userId로 UserEntity를 조회하여 다이어리에 작성자 정보가 포함되도록 구현했습니다.
  • 컨트롤러 레벨에서 HTTP 요청의 헤더에 userId를 포함해 전달하면, 이를 서비스 계층에서 받아서 다이어리를 저장할 때 작성자 정보가 포함되도록 했습니다.
  • 관련 메서드 (createDiary, getMyDiaries 등)에서 userId에 따른 다이어리 조회, 작성 및 수정 권한 확인을 추가하여 안전한 다이어리 접근을 보장했습니다.

🔍️ 공개 여부 (Publish Status) 추가

DiaryEntity에 isPublished 추가

  • DiaryEntity에 isPublished라는 Boolean 필드를 추가했습니다. 이 필드는 다이어리의 공개 여부를 나타내며, 기본값은 false로 설정되어 비공개 상태입니다.
  • 다이어리 작성 후에는 기본적으로 비공개이며, 사용자가 publishDiary 메서드를 호출하여 공개 상태를 설정할 수 있습니다.
  • publishDiary 메서드는 다이어리의 ID를 받아 해당 다이어리를 공개 또는 비공개로 전환합니다.
  • 공개 여부는 DiaryResponse에 포함되어 응답으로 반환됩니다.

🔍️ 페이징 처리

DiaryRepository에 페이징 메서드를 정의하여, Spring Data JPA의 페이징 기능을 통해 Page를 반환하도록 설정

  • 다이어리 목록을 반환하는 주요 메서드 (getDiaryList, getDiaryByCategory, getSortDiary)에 Pageable 파라미터를 추가하여, 요청에 따라 데이터를 페이지 단위로 불러올 수 있도록 수정했습니다.
  • 서비스 계층에서 Page 객체를 받아 Page로 변환한 후 컨트롤러에서 반환합니다.
  • 다이어리 목록 조회 시 요청 URL에 page, size, orderBy 등 파라미터를 통해 페이징 및 정렬 조건을 전달할 수 있으며, 응답에서 페이지 정보와 함께 다이어리 데이터가 포함됩니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant