Ugrás a fő tartalomhoz
Was this helpful?

Naptár API

Naptárak és naptárcsoportok

Naptárak létrehozása, csoportokba rendezése és a megosztás kezelése

A PrimeCal felosztja a naptárkezelést /api/calendars és között /api/calendar-groups. Ez az oldal mindkét útvonalcsaládot egyben tartja, így a a teljes naptárkezelési munkafolyamat egy helyen van dokumentálva.

JWT vagy felhasználói API kulcsSaját és megosztott naptárakCsoportálnevek a /calendars/groups alattMegosztási engedélyek

Forrás

  • Naptárvezérlő: backend-nestjs/src/calendars/calendars.controller.ts
  • Naptárcsoport-vezérlő: backend-nestjs/src/calendars/calendar-groups.controller.ts
  • DTO-k: backend-nestjs/src/dto/calendar.dto.ts, backend-nestjs/src/dto/calendar-group.dto.ts, backend-nestjs/src/calendars/dto/calendar-sharing.dto.ts
  • Az entitások számai: backend-nestjs/src/entities/calendar.entity.ts

Hitelesítés és engedélyek

  • Ezen az oldalon minden végpont hitelesítést igényel.
  • A tulajdonjog vagy a megosztási engedélyek a szolgáltatási rétegben érvényesülnek.
  • A megosztási műveletek read, write és admin engedélyszinteket használnak.
  • A naptártörlés lágy törlés.
  • A csoporttörlés nem törli a csoporton belüli naptárakat.

Végpont referencia

Naptárak

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
POST/api/calendarsHozzon létre egy naptárt.Törzs: name,description,color,icon,visibility,groupId,rankJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
GET/api/calendarsSaját és megosztott naptárak listázása.Egyik semJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
GET/api/calendars/:idVegyél egy naptárat.Elérési út: idJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
PATCH/api/calendars/:idNaptár frissítése.Elérési út: id, törzs: részleges naptármezőkJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
DELETE/api/calendars/:idNaptár finom törlése.Elérési út: idJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
POST/api/calendars/:id/shareNaptár megosztása a felhasználókkal.Elérési út: id, törzs: userIds,permissionJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
DELETE/api/calendars/:id/shareNaptár megosztásának megszüntetése a felhasználókkal.Elérési út: id, törzs: userIdsJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
GET/api/calendars/:id/shared-usersSorolja fel azokat a felhasználókat, akikkel a naptár meg van osztva.Elérési út: idJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
GET/api/calendars/groupsAlias ​​a naptárcsoportok listázásához.Egyik semJWT vagy felhasználói API kulcscalendars/calendars.controller.ts
POST/api/calendars/groupsAlias ​​naptárcsoport létrehozásához.Törzs: name,isVisibleJWT vagy felhasználói API kulcscalendars/calendars.controller.ts

Naptár csoportok

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
POST/api/calendar-groupsHozzon létre egy csoportot.Törzs: name,isVisibleJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
GET/api/calendar-groupsCsoportok listázása elérhető naptárral.Egyik semJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
PATCH/api/calendar-groups/:idCsoport átnevezése vagy láthatóság váltása.Elérési út: id, törzs: name,isVisibleJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
DELETE/api/calendar-groups/:idCsoport törlése a naptárak törlése nélkül.Elérési út: idJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
POST/api/calendar-groups/:id/calendarsNaptárak hozzárendelése egy csoporthoz.Elérési út: id, törzs: calendarIdsJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
POST/api/calendar-groups/:id/calendars/unassignNaptárak eltávolítása egy csoportból.Elérési út: id, törzs: calendarIdsJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
POST/api/calendar-groups/:id/shareAz összes naptár megosztása egy csoportban.Elérési út: id, törzs: userIds,permissionJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts
DELETE/api/calendar-groups/:id/shareEgy csoportban lévő összes naptár megosztásának megszüntetése a felhasználókkal.Elérési út: id, törzs: userIdsJWT vagy felhasználói API kulcscalendars/calendar-groups.controller.ts

Kérjen alakzatokat

Naptár DTO-k

CreateCalendarDto és UpdateCalendarDto a backend-nestjs/src/dto/calendar.dto.ts-ban

  • name: kötelező a létrehozásnál, karakterlánc
  • description: opcionális karakterlánc
  • color: opcionális karakterlánc, az entitás szintjén az alapértelmezett #3b82f6
  • icon: opcionális karakterlánc
  • visibility: opcionális enum private|shared|public
  • groupId: opcionális szám vagy null
  • rank: opcionális szám, az entitás szintjén az alapértelmezett 0

Entitásjegyzetek a backend-nestjs/src/entities/calendar.entity.ts-tól

  • name hossza: 200
  • description hossza: 500
  • color hossza: 7
  • icon hossza: 10

DTO-k megosztása

  • ShareCalendarDto.userIds: szükséges számtömb
  • ShareCalendarDto.permission: kötelező enum read|write|admin
  • UnshareCalendarUsersDto.userIds: szükséges egyedi egész tömb, maximum 100 elem, minimum 1

Csoport DTO-k

CreateCalendarGroupDto és UpdateCalendarGroupDto a backend-nestjs/src/dto/calendar-group.dto.ts-ban

  • name: létrehozáskor kötelező, minimum 2 karakter
  • isVisible: opcionális logikai érték
  • AssignCalendarsToGroupDto.calendarIds: szükséges számtömb
  • ShareCalendarGroupDto.userIds: szükséges számtömb
  • ShareCalendarGroupDto.permission: kötelező enum read|write|admin

Példahívások

Hozzon létre egy naptárt

curl -X POST "$PRIMECAL_API/api/calendars" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Family",
"description": "Shared household planning",
"color": "#14b8a6",
"visibility": "private",
"rank": 10
}'

Hozzon létre egy csoportot és rendeljen hozzá naptárakat

curl -X POST "$PRIMECAL_API/api/calendar-groups" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Late Family",
"isVisible": true
}'
curl -X POST "$PRIMECAL_API/api/calendar-groups/3/calendars" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"calendarIds": [5, 7]
}'

Naptár megosztása

curl -X POST "$PRIMECAL_API/api/calendars/5/share" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"userIds": [42],
"permission": "write"
}'

Válasz és viselkedés megjegyzések

  • A naptári válaszok csoport metaadatokat és megosztott felhasználói összefoglalókat tartalmazhatnak.
  • A GET /api/calendars a naptár munkaterület fő rendszerindítási útvonala.
  • A /api/calendars/groups kompatibilitási álnévként létezik; a kanonikus csoportvezérlő a /api/calendar-groups címen található.
  • A rank befolyásolja a sorrendet és a prioritási viselkedést a naptárorientált nézetekben.
  • A isTasksCalendar és a isReservationCalendar léteznek entitás szinten, de nem közvetlenül az itt dokumentált DTO-k létrehozása/frissítése révén kezelik őket.

Legjobb gyakorlatok

  • A GET /api/calendars és a GET /api/calendar-groups együtt használja a bal oldali naptárfa felépítéséhez.
  • Csak akkor részesítse előnyben a csoportos megosztást, ha az a szándék, hogy több naptárt ugyanazon engedélymodell szerint igazítson.
  • Kezelje a DELETE /api/calendars/:id-t lágy törlésként, és frissítse a helyi állapotot a mutáció után.
  • Használja a User API GET /api/users?search=... alkalmazást, hogy segítse a megosztási párbeszédpanelek kiválasztását.
  • Tartsa a visibility és az engedélyek megosztását fogalmilag elkülönítve az ügyfelekben: a láthatóság a naptár megjelenési modellje, míg a megosztás konkrét hozzáférést biztosít a felhasználóknak.