KAPUIST / Node-Recruiter

λ…Έλ“œ 간단 이λ ₯μ„œ CRUD
0 stars 0 forks source link

(선택) Transaction ν™œμš© #8

Closed KAPUIST closed 1 month ago

KAPUIST commented 2 months ago

πŸ“‹ ν”„λ‘œμ νŠΈ κΈ°λ³Έ μ„ΈνŒ…

μ—­ν•  인가 Middleware

인증을 ν†΅κ³Όν•œ ν›„ μ ‘κ·Ό κΆŒν•œμ„ κ²€μ¦ν•©λ‹ˆλ‹€.

  1. μš”μ²­ 정보

    • [x] μ‚¬μš©μž μ •λ³΄λŠ” 인증 Middleware(req.user)λ₯Ό ν†΅ν•΄μ„œ 전달 λ°›μŠ΅λ‹ˆλ‹€.
    • [x] ν—ˆμš© 역할은 Middleware μ‚¬μš© μ‹œ λ°°μ—΄λ‘œ 전달 λ°›μŠ΅λ‹ˆλ‹€.
    app.patch(
      '/resume/:id/status',
      requireRoles(['**RECRUITER'**]), 
      (req, res, next) => {
        // TODO: 지원 μƒνƒœ λ³€κ²½ API
      }
    );
  2. μœ νš¨μ„± 검증 및 μ—λŸ¬ 처리

    • [x] ν—ˆμš© 된 역할이 μ•„λ‹Œ 경우 - β€œμ ‘κ·Ό κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€.”
  3. λ°˜ν™˜ 정보

    • [x] λ°˜ν™˜μ—†μ΄ λ‹€μŒ λ™μž‘μ„ μ§„ν–‰ν•©λ‹ˆλ‹€.

이λ ₯μ„œ 지원 μƒνƒœ λ³€κ²½ API (πŸ”Β AccessToken 인증, μ—­ν•  인가 ν•„μš”)

⚠️ 이λ ₯μ„œ 둜그 μ €μž₯을 μœ„ν•œ μŠ€ν‚€λ§ˆ μ •μ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

μ±„μš© λ‹΄λ‹Ήμžκ°€ μ§€μ›μžμ˜ 이λ ₯μ„œ 지원 μƒνƒœλ₯Ό λ³€κ²½ν•˜κ³ , μ΄λ•Œ 이λ ₯μ„œ 둜그λ₯Ό ν•¨κ»˜ μƒμ„±ν•©λ‹ˆλ‹€.

  1. μš”μ²­ 정보
    • [x] μ‚¬μš©μž μ •λ³΄λŠ” 인증 Middleware(req.user)λ₯Ό ν†΅ν•΄μ„œ 전달 λ°›μŠ΅λ‹ˆλ‹€.
    • [x] 이λ ₯μ„œ IDλ₯Ό Path Parameters(req.params)둜 전달 λ°›μŠ΅λ‹ˆλ‹€.
    • [x] 지원 μƒνƒœ, μ‚¬μœ λ₯Ό Request Body(**req.body**)둜 전달 λ°›μŠ΅λ‹ˆλ‹€.
  2. μœ νš¨μ„± 검증 및 μ—λŸ¬ 처리
    • [x] 지원 μƒνƒœκ°€ μ—†λŠ” 경우 - β€œλ³€κ²½ν•˜κ³ μž ν•˜λŠ” 지원 μƒνƒœλ₯Ό μž…λ ₯ν•΄ μ£Όμ„Έμš”.”
    • [x] μ‚¬μœ κ°€ μ—†λŠ” 경우 - β€œμ§€μ› μƒνƒœ λ³€κ²½ μ‚¬μœ λ₯Ό μž…λ ₯ν•΄ μ£Όμ„Έμš”.”
    • [x] μœ νš¨ν•˜μ§€ μ•Šμ€ 지원 μƒνƒœλ₯Ό μž…λ ₯ ν•œ 경우 - β€œμœ νš¨ν•˜μ§€ μ•Šμ€ 지원 μƒνƒœμž…λ‹ˆλ‹€.”
    • [x] 이λ ₯μ„œ 정보가 μ—†λŠ” 경우 - β€œμ΄λ ₯μ„œκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.”
  3. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(데이터 처리)
    • [x] 이λ ₯μ„œ 정보 μˆ˜μ •κ³Ό 이λ ₯μ„œ 둜그 생성을 Transaction으둜 λ¬Άμ–΄μ„œ μ‹€ν–‰ν•©λ‹ˆλ‹€.
  4. λ°˜ν™˜ 정보
    • [x] 생성 된 이λ ₯μ„œ 둜그 정보(이λ ₯μ„œ 둜그 ID, μ±„μš© λ‹΄λ‹Ήμž ID, 이λ ₯μ„œ ID, μ˜ˆμ „ μƒνƒœ, μƒˆλ‘œμš΄ μƒνƒœ, μ‚¬μœ , μƒμ„±μΌμ‹œ)λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

이λ ₯μ„œ 둜그 λͺ©λ‘ 쑰회 API (πŸ”Β AccessToken 인증, μ—­ν•  인가 ν•„μš”)

μ±„μš© λ‹΄λ‹Ήμžκ°€ 이λ ₯μ„œ 둜그(지원 μƒνƒœ λ³€κ²½ 이λ ₯) λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.

  1. μš”μ²­ 정보
    • [x] 이λ ₯μ„œ IDλ₯Ό Path Parameters(req.params)둜 전달 λ°›μŠ΅λ‹ˆλ‹€.
  2. μœ νš¨μ„± 검증 및 μ—λŸ¬ 처리
    • [x] μΌμΉ˜ν•˜λŠ” 값이 μ—†λŠ” 경우 - 빈 λ°°μ—΄(**[]**)을 λ°˜ν™˜ν•©λ‹ˆλ‹€. (StatusCode: 200)
  3. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(데이터 처리)
    • [x] μƒμ„±μΌμ‹œ κΈ°μ€€ μ΅œμ‹ μˆœμœΌλ‘œ μ‘°νšŒν•©λ‹ˆλ‹€.
    • [x] μ±„μš© λ‹΄λ‹Ήμž IDκ°€ μ•„λ‹Œ μ±„μš© λ‹΄λ‹Ήμž 이름을 λ°˜ν™˜ν•˜κΈ° μœ„ν•΄ μŠ€ν‚€λ§ˆμ— μ •μ˜ ν•œ Relation을 ν™œμš©ν•΄ μ‘°νšŒν•©λ‹ˆλ‹€.
  4. λ°˜ν™˜ 정보
    • [x] 쑰회 ν•œ 이λ ₯μ„œ 둜그 정보(이λ ₯μ„œ 둜그 ID, μ±„μš© λ‹΄λ‹Ήμž 이름, 이λ ₯μ„œ ID, μ˜ˆμ „ μƒνƒœ, μƒˆλ‘œμš΄ μƒνƒœ, μ‚¬μœ , μƒμ„±μΌμ‹œ) λͺ©λ‘μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.