KAPUIST / Node-Recruiter

노드 간단 이력서 CRUD
0 stars 0 forks source link

이력서 관리 #6

Closed KAPUIST closed 4 months ago

KAPUIST commented 4 months ago

📋 이력서 관리

이력서 생성 API (🔐 AccessToken 인증 필요)

새로운 이력서를 생성합니다.

  1. 요청 정보
    • [x] 사용자 정보는 인증 Middleware(req.user)를 통해서 전달 받습니다.
    • [x] 제목, 자기소개Request Body(req.body)로 전달 받습니다.
  2. 유효성 검증 및 에러 처리
    • [x] 제목, 자기소개 중 하나라도 빠진 경우 - “OO을 입력해 주세요”
    • [x] 자기소개 글자 수가 150자 보다 짧은 경우 - “자기소개는 150자 이상 작성해야 합니다.”
  3. 비즈니스 로직(데이터 처리)
    • [x] 작성자 ID는 인증 Middleware에서 전달 받은 정보를 활용합니다.
    • [x] 이력서 ID, 지원 상태, 생성일시, 수정일시 는 자동 생성됩니다.
    • [x] 지원 상태의 종류는 다음과 같으며, 기본 값은 APPLY 입니다.
      • 서류 지원 완료 APPLY
      • 서류 탈락 DROP
      • 서류 합격 PASS
      • 1차 면접 INTERVIEW1
      • 2차 면접 INTERVIEW2
      • 최종 합격 FINAL_PASS
  4. 반환 정보
    • [x] 이력서 ID, 작성자 ID, 제목, 자기소개, 지원 상태, 생성일시, 수정일시를 반환합니다.

이력서 목록 조회 API (🔐 AccessToken 인증 필요)

내가 등록 한 이력서 목록을 조회합니다.

  1. 요청 정보
    • [x] 사용자 정보는 **인증 Middleware(req.user)를 통해서 전달 받습니다.
    • [x] Query Parameters(req.query)으로 정렬 조건을 받습니다.
    • [x] 생성일시 기준 정렬과거순(ASC), 최신순(DESC)으로 전달 받습니다. 값이 없는 경우 최신순(DESC)정렬을 기본으로 합니다. 대소문자 구분 없이 동작해야 합니다. 예) sort=desc
  2. 유효성 검증 및 에러 처리
    • [x] 일치하는 값이 없는 경우 - 빈 배열([])을 반환합니다. (StatusCode: 200)
  3. 비즈니스 로직(데이터 처리)
    • [x] 현재 로그인 한 사용자가 작성한 이력서 목록만 조회합니다.
    • [x] DB에서 이력서 조회 시 작성자 ID가 일치해야 합니다.
    • [x] 정렬 조건에 따라 다른 결과 값을 조회합니다.
    • [x] 작성자 ID가 아닌 작성자 이름을 반환하기 위해 스키마에 정의 한 Relation을 활용해 조회합니다.
  4. 반환 정보
    • [x] 이력서 ID, 작성자 이름, 제목, 자기소개, 지원 상태, 생성일시, 수정일시의 목록을 반환합니다.

이력서 상세 조회 API (🔐 AccessToken 인증 필요)

내가 등록 한 이력서의 상세 정보를 조회합니다.

  1. 요청 정보
    • [x] 사용자 정보는 인증 Middleware(req.user)를 통해서 전달 받습니다.
    • [x] 이력서 ID를 Path Parameters(req.params)로 전달 받습니다.
  2. 유효성 검증 및 에러 처리
    • [x] 이력서 정보가 없는 경우 - “이력서가 존재하지 않습니다.”
  3. 비즈니스 로직(데이터 처리)
    • [x] 현재 로그인 한 사용자가 작성한 이력서만 조회합니다.
    • [x] DB에서 이력서 조회 시 이력서 ID, 작성자 ID가 모두 일치해야 합니다.
    • [x] 작성자 ID가 아닌 작성자 이름을 반환하기 위해 스키마에 정의 한 Relation을 활용해 조회합니다.
  4. 반환 정보
    • [x] 이력서 ID, 작성자 이름, 제목, 자기소개, 지원 상태, 생성일시, 수정일시를 반환합니다.

이력서 수정 API (🔐 AccessToken 인증 필요)

내가 등록 한 이력서를 수정합니다.

  1. 요청 정보
    • [x] 사용자 정보는 인증 Middleware(req.user)를 통해서 전달 받습니다.
    • [x] 이력서 IDPath Parameters(req.params)로 전달 받습니다.
    • [x] 제목, 자기소개Request Body(**req.body**)로 전달 받습니다.
  2. 유효성 검증 및 에러 처리
    • [x] 제목, 자기소개 둘 다 없는 경우 - “수정 할 정보를 입력해 주세요.”
    • [x] 이력서 정보가 없는 경우 - “이력서가 존재하지 않습니다.”
  3. 비즈니스 로직(데이터 처리)
    • [x] DB에서 이력서 조회 시 이력서 ID, 작성자 ID가 모두 일치해야 합니다.
    • [x] DB에서 이력서 정보를 수정합니다.
    • [x] 제목, 자기소개는 개별 수정이 가능합니다.
  4. 반환 정보
    • [x] 수정 된 이력서 ID, 작성자 ID, 제목, 자기소개, 지원 상태, 생성일시, 수정일시를 반환합니다.

이력서 삭제 API (🔐 AccessToken 인증 필요)

내가 등록 한 이력서를 삭제합니다.

  1. 요청 정보
    • [x] 사용자 정보는 인증 Middleware(req.user)를 통해서 전달 받습니다.
    • [x] 이력서 IDPath Parameters(req.params)로 전달 받습니다.
  2. 유효성 검증 및 에러 처리
    • [x] 이력서 정보가 없는 경우 - “이력서가 존재하지 않습니다.”
  3. 비즈니스 로직(데이터 처리)
    • [x] DB에서 이력서 조회 시 이력서 ID, 작성자 ID가 모두 일치해야 합니다.
    • [x] DB에서 이력서 정보를 삭제합니다.
  4. 반환 정보
    • [x] 삭제 된 이력서 ID를 반환합니다