Skip to content

Latest commit

ย 

History

History
113 lines (86 loc) ยท 3.01 KB

File metadata and controls

113 lines (86 loc) ยท 3.01 KB

Reminders API

๋…๋ฆฝ ๋ฆฌ๋งˆ์ธ๋” CRUD์™€, ํ–ฅํ›„ 24์‹œ๊ฐ„ ์ด๋‚ด์˜ ํ†ตํ•ฉ upcoming ์กฐํšŒ(๋…๋ฆฝ ๋ฆฌ๋งˆ์ธ๋” + ์บ˜๋ฆฐ๋” ์ด๋ฒคํŠธ ๋ฆฌ๋งˆ์ธ๋”)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผ ๋ฐœ์†กยท์„ค์ • ํ•„ํ„ฐ๋Š” ์•Œ๋ฆผ API์™€ ์—ฐ๋™๋ฉ๋‹ˆ๋‹ค.

๋ผ์šฐํŠธ ํŒŒ์ผ: backend/src/routes/reminders.js
์ปจํŠธ๋กค๋Ÿฌ ํŒŒ์ผ: backend/src/controllers/reminders.js
๋ชจ๋ธ ํŒŒ์ผ: backend/src/models/Reminder.js


์—”๋“œํฌ์ธํŠธ ์š”์•ฝ

๋ฉ”์„œ๋“œ ๊ฒฝ๋กœ ์„ค๋ช… ๊ถŒํ•œ
GET /api/reminders/upcoming 24์‹œ๊ฐ„ ์ด๋‚ด ํ†ตํ•ฉ ๋ฆฌ๋งˆ์ธ๋” isLoggedIn
POST /api/reminders ๋…๋ฆฝ ๋ฆฌ๋งˆ์ธ๋” ์ƒ์„ฑ isLoggedIn
PUT /api/reminders/:_id ๋ฆฌ๋งˆ์ธ๋” ์ˆ˜์ • isLoggedIn (๋ณธ์ธ)
PUT /api/reminders/:_id/complete ์™„๋ฃŒ ์ฒ˜๋ฆฌ isLoggedIn (๋ณธ์ธ)
DELETE /api/reminders/:_id ์‚ญ์ œ isLoggedIn (๋ณธ์ธ)

Upcoming ์กฐํšŒ

๋ฏธ์™„๋ฃŒ ๋…๋ฆฝ ๋ฆฌ๋งˆ์ธ๋”(์•ž์œผ๋กœ 24์‹œ๊ฐ„ + ๊ณผ๊ฑฐ ๋ฏธํ†ต๋ณด)์™€, reminder.enabled์ธ ์บ˜๋ฆฐ๋” ์ผ์ •์˜ ์˜ˆ์ • ์•Œ๋ฆผ์„ ํ•ฉ์ณ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๊ธฐ๋ณธ ๋ถ„ ๊ฐ’์€ ์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์„ค์ •์˜ eventReminderDefault(๊ธฐ๋ณธ 15๋ถ„)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

GET /api/reminders/upcoming

๊ถŒํ•œ: isLoggedIn

์‘๋‹ต (200)

ํ†ตํ•ฉ ๋ฐฐ์—ด์„ reminderTime ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. type์€ "standalone" ๋˜๋Š” "event"์ž…๋‹ˆ๋‹ค.

{
  "reminders": [
    {
      "type": "standalone",
      "reminderTime": "2026-08-07T10:00:00.000Z",
      "data": {
        "_id": "507f1f77bcf86cd799439301",
        "title": "์ƒ๋‹ด ์ค€๋น„",
        "completed": false
      }
    },
    {
      "type": "event",
      "reminderTime": "2026-08-07T11:45:00.000Z",
      "data": {
        "_id": "507f1f77bcf86cd799439401",
        "title": "์ „์ฒดํšŒ์˜",
        "eventStart": "2026-08-07T12:00:00.000Z",
        "minutesBefore": 15,
        "isRecurring": false
      }
    }
  ]
}

๋ฆฌ๋งˆ์ธ๋” ์ƒ์„ฑ

POST /api/reminders
ํ•„๋“œ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
title string O ์ œ๋ชฉ
reminderTime string (ISO 8601) O ์•Œ๋ฆผ ์‹œ๊ฐ
memo string X ๋ฉ”๋ชจ

reminderTime์ด ์ด๋ฏธ ์ง€๋‚ฌ๊ฑฐ๋‚˜ 1๋ถ„ ์ด๋‚ด์ด๋ฉด ์ฆ‰์‹œ reminder ์œ ํ˜• ์•Œ๋ฆผ์„ ๋ฐœ์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์—๋Š” ์Šค์ผ€์ค„๋Ÿฌ ํ์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.

์‘๋‹ต (200)

{
  "reminder": {
    "_id": "507f1f77bcf86cd799439301",
    "title": "์ƒ๋‹ด ์ค€๋น„",
    "memo": "",
    "reminderTime": "2026-08-07T10:00:00.000Z",
    "completed": false,
    "notified": false
  }
}

์ˆ˜์ • / ์™„๋ฃŒ / ์‚ญ์ œ

PUT    /api/reminders/:_id            // title, memo, reminderTime
PUT    /api/reminders/:_id/complete   // completed: true, ํ์—์„œ ์ œ๊ฑฐ
DELETE /api/reminders/:_id

reminderTime ๋ณ€๊ฒฝ ์‹œ notified๊ฐ€ ์ดˆ๊ธฐํ™”๋˜๊ณ  ์Šค์ผ€์ค„๋Ÿฌ์— ๋‹ค์‹œ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.


๊ด€๋ จ ๋ฌธ์„œ