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주차] 필수 과제 #8

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

[3주차] 필수 과제 #8

wants to merge 1 commit into from

Conversation

ksarangee
Copy link
Collaborator

📌유저 정보

  1. 회원가입 (SignupRequest -> UserController -> UserService)
    • 사용자가 username, password, nickname 입력
    • UserController가 /signup 엔드포인트로 요청 받음
    • UserService에서 중복 username 체크 후 UserEntity 생성 및 저장
  2. 로그인 (LoginRequest -> UserController -> UserService)
    • 사용자가 username, password 입력
    • UserController가 /login 엔드포인트로 요청 받음
    • UserService에서 인증 후 토큰(식별자) 반환
  3. POST 유저 정보 연동
    • 헤더의 X-USER-ID(토큰)로 작성자 식별
    • DiaryService에서 UserRepository를 통해 사용자 정보 조회
    • DiaryEntity에 userId와 userNickname 저장
  4. PATCH, DELETE 작성자 식별
    • 헤더의 X-USER-ID(토큰)로 작성자 식별
    • 작성자만 일기 수정 및 삭제 가능

📌공개 여부

  1. 일기 작성 (DiaryRequest -> DiaryController -> DiaryService)
    • DiaryRequest에서 isPublic 필드로 공개 여부 지정
    • DiaryService에서 DiaryEntity 생성 시 isPublic 설정
    • DiaryListResponse에 공개 여부 포함하여 반환
  2. 일기 수정
    • PATCH 요청으로 공개 여부 변경 가능
    • 권한 확인 후 DiaryEntity의 isPublic 상태 업데이트

📌정렬 기준 선택

  1. 일기 목록 조회
    • /diaries/list 엔드포인트에 sortBy 파라미터 지정
    • LATEST(최신순) 또는 CONTENT_LENGTH(내용 길이순) 선택 가능
    • category 파라미터와 조합하여 필터링 가능
  2. Repository 레벨에서의 정렬 처리
    • 최신순: findTop10ByOrderByCreatedAtDesc()
    • 내용 길이순: Query 어노테이션으로 커스텀 정렬 구현

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

Successfully merging this pull request may close these issues.

1 participant