Esemény API
Események és események megjegyzései
Események létrehozása, ismétlődő sorozatok kezelése és együttműködés a megjegyzésekkel
Ez az oldal az esemény CRUD felületét, ismétlődő eseménykezelését, naptári hatókörű eseményét dokumentálja olvas, és az eseményekhez csatolt megjegyzésszál végpontjai.
JWT vagy felhasználói API kulcsIsmétlődő frissítésekNaptártartomány lekérdezésekMegjegyzés szálak
Forrás
- Eseményvezérlő:
backend-nestjs/src/events/events.controller.ts - Esemény megjegyzések vezérlője:
backend-nestjs/src/events/event-comments.controller.ts - DTO-k:
backend-nestjs/src/dto/event.dto.ts,backend-nestjs/src/dto/recurrence.dto.ts,backend-nestjs/src/dto/event-comment.dto.ts,backend-nestjs/src/events/dto/list-events.query.dto.ts - Esemény entitások számai:
backend-nestjs/src/entities/event.entity.ts
Hitelesítés és engedélyek
- Ezen az oldalon minden útvonal hitelesítésre szolgál.
- Az esemény megjegyzései a
JwtAuthGuardkódot használják a vezérlő szintjén. - Az esemény CRUD-útvonalai kifejezetten a
JwtAuthGuard-t használják minden metóduson, kivéve aGET /api/events/calendar/:calendarId-t. - Forrás megjegyzés:
GET /api/events/calendar/:calendarIdtovábbra isreq.user.idolvasható, ezért kezelje hitelesített útvonalként, még akkor is, ha a dekorátor hiányzik a vezérlő forrásából. - Az eseményekhez és megjegyzésekhez való hozzáférést az események és naptárak tulajdonjoga vagy a szolgáltatási réteg megosztási engedélyei kényszerítik ki.
Végpont referencia
Események
| módszer | Útvonal | Cél | Kérjen vagy érdeklődjön | Auth | Forrás |
|---|---|---|---|---|---|
POST | /api/events | Hozzon létre egy eseményt. | Törzs: eseménymezők | JWT vagy felhasználói API kulcs | events/events.controller.ts |
POST | /api/events/recurring | Hozzon létre egy ismétlődő eseménysorozatot. | Törzs: ismétlődő eseménymezők | JWT vagy felhasználói API kulcs | events/events.controller.ts |
GET | /api/events | Az elérhető események listája egy opcionális dátumtartományban. | Lekérdezés: startDate,endDate | JWT vagy felhasználói API kulcs | events/events.controller.ts |
GET | /api/events/:id | Szerezzen be egy eseményt. | Elérési út: id | JWT vagy felhasználói API kulcs | events/events.controller.ts |
PATCH | /api/events/:id | Frissítsen egy eseményt vagy egy ismétlődő előfordulást. | Elérési út: id, törzs: részleges eseménymezők plusz updateMode | JWT vagy felhasználói API kulcs | events/events.controller.ts |
DELETE | /api/events/:id | Egy esemény törlése. | Elérési út: id | JWT vagy felhasználói API kulcs | events/events.controller.ts |
PATCH | /api/events/:id/recurring | Frissítsen egy ismétlődő sorozatot explicit hatókörrel. | Elérési út: id, törzs: ismétlődő frissítési mezők plusz updateScope | JWT vagy felhasználói API kulcs | events/events.controller.ts |
GET | /api/events/calendar/:calendarId | Egy naptár eseményeinek listája. | Elérési út: calendarId | Hitelesítettként kezeljük | events/events.controller.ts |
Esemény megjegyzései
| módszer | Útvonal | Cél | Kérjen vagy érdeklődjön | Auth | Forrás |
|---|---|---|---|---|---|
GET | /api/events/:eventId/comments | Megjegyzések listázása egy eseményhez. | Elérési út: eventId | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
POST | /api/events/:eventId/comments | Hozzon létre egy megjegyzést. | Elérési út: eventId, törzs: content,templateKey,parentCommentId,isFlagged | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
POST | /api/events/:eventId/comments/track-open | Nyomon követheti, hogy egy felhasználó megnyitott-e egy eseményt. | Elérési út: eventId, törzs: note | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
PATCH | /api/events/:eventId/comments/:commentId | Megjegyzés frissítése. | Elérési út: eventId,commentId, törzs: content | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
PATCH | /api/events/:eventId/comments/:commentId/flag | Megjegyzés megjelölése vagy jelölésének megszüntetése. | Elérési út: eventId,commentId, törzs: isFlagged | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
POST | /api/events/:eventId/comments/:commentId/replies | Válasz egy megjegyzésre. | Elérési út: eventId,commentId, törzs: megjegyzés mezők létrehozása | JWT vagy felhasználói API kulcs | events/event-comments.controller.ts |
Kérjen alakzatokat
Esemény létrehozása és frissítése
CreateEventDto és UpdateEventDto a backend-nestjs/src/dto/event.dto.ts-ban
title: kötelező a létrehozásnál, karakterláncdescription: opcionális karakterláncstartDate: létrehozáskor kötelező, ISO dátumstartTime: opcionális karakterláncendDate: opcionális ISO-dátumendTime: opcionális karakterláncisAllDay: opcionális logikai értéklocation: opcionális karakterláncstatus: opcionális enumconfirmed|tentative|cancelledrecurrenceType: opcionális enumnone|daily|weekly|monthly|yearlyrecurrenceRule: opcionális JSON hasznos adatcolor: opcionális karakterláncicon: opcionális karakterláncnotes: opcionális karakterlánctags: opcionális string tömb, egyenként legfeljebb 64 karakterlabels: opcionális álnév atagsszámáracalendarId: opcionális számupdateMode: csak frissítési enumsingle|all|future
Entitásszintű korlátok innen: backend-nestjs/src/entities/event.entity.ts
titlehossza: 300locationhossza: 200iconhossza: 10colorhossza: 7
Ismétlődő sorozatok
CreateRecurringEventDto és UpdateRecurringEventDto a backend-nestjs/src/dto/recurrence.dto.ts-ban
calendarId: létrehozáskor kötelezőrecurrence.type: kötelező enumnone|daily|weekly|monthly|yearlyrecurrence.interval: opcionális szám, alapértelmezett1recurrence.daysOfWeek: opcionális enum tömbSU|MO|TU|WE|TH|FR|SArecurrence.dayOfMonth: opcionális számrecurrence.monthOfYear: opcionális számrecurrence.endType: nem kötelezőnever|count|daterecurrence.count: opcionális számrecurrence.endDate: opcionális ISO-dátumrecurrence.timezone: opcionális karakterláncupdateScope: csak frissítési enumthis|future|all
Lista lekérdezés
ListEventsQueryDto.startDate: opcionális ISO-dátumListEventsQueryDto.endDate: opcionális ISO-dátum
Megjegyzések
CreateEventCommentDto itt: backend-nestjs/src/dto/event-comment.dto.ts
content: opcionális karakterlánctemplateKey: opcionális enumCommentTemplateKeyparentCommentId: opcionális számisFlagged: opcionális logikai érték
Egyéb megjegyzés DTO-k:
UpdateEventCommentDto.content: kötelező karakterláncFlagCommentDto.isFlagged: kötelező logikai értékTrackEventOpenDto.note: opcionális karakterlánc
Példahívások
Naptáresemény létrehozása
curl -X POST "$PRIMECAL_API/api/events" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "School pickup",
"startDate": "2026-03-30",
"startTime": "15:30",
"endDate": "2026-03-30",
"endTime": "16:00",
"calendarId": 5,
"tags": ["family", "kids"]
}'
Hozzon létre egy ismétlődő eseménysorozatot
curl -X POST "$PRIMECAL_API/api/events/recurring" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Soccer practice",
"startDate": "2026-04-01",
"startTime": "17:00",
"endDate": "2026-04-01",
"endTime": "18:30",
"calendarId": 5,
"recurrence": {
"type": "weekly",
"interval": 1,
"daysOfWeek": ["WE"],
"endType": "date",
"endDate": "2026-06-30"
}
}'
Egy ismétlődő sorozat egyetlen előfordulásának frissítése
curl -X PATCH "$PRIMECAL_API/api/events/42" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startTime": "17:30",
"endTime": "19:00",
"updateMode": "single"
}'
Megjegyzés hozzáadása
curl -X POST "$PRIMECAL_API/api/events/42/comments" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Running 10 minutes late."
}'
Válasz és viselkedés megjegyzések
- Az eseményre adott válaszok tartalmaznak egy
calendarösszefoglalót és egycreatedByösszefoglalót. - A
tagsés alabelspárhuzamos bemenetek; az ügyfeleknek egy konvenciót kell választaniuk, és következetesnek kell maradniuk. - Az ismétlődő sorozatú frissítéseknek két különböző modellje van:
- A
PATCH /api/events/:idaupdateMode-t használja asingle|all|future-val - A
PATCH /api/events/:id/recurringaupdateScope-t használja athis|future|all-val
- A
- A megjegyzésekre adott válaszok magukban foglalják a beágyazott válaszokat, a riporter metaadatait, a láthatóságot és a zászló állapotát.
Legjobb gyakorlatok
- A dátum és az idő mezőket külön küldje el; a háttérrendszer külön tulajdonságként modellezi őket.
- A
GET /api/events?startDate=...&endDate=...előnyben részesítése a naptárnézetekhez és az exportáláshoz. - Az ismétlődő szerkesztéseket ne zárja ki. Ne feltételezze, hogy az ügyfél alapértelmezett beállítása megegyezik a felhasználó szándékával.
- Normalizálja az eseménycímkéket az ügyfélen, ha újrafelhasználható címkéket is közzétesz a felhasználói beállítások folyamatán keresztül.
- Használja a megjegyzéseket együttműködési metaadatokhoz és látható vitákhoz, ne rejtett gépállapotú csatornaként.