Aufgaben API
Aufgabenarbeitsbereich
Aufgaben erstellen, Arbeit filtern und wiederverwendbare Aufgabenbezeichnungen verwalten
Diese leiten zurück zum Aufgabenarbeitsbereich PrimeCal. Sie beziehen sich alle auf den authentifizierten Benutzer und umfassen sowohl Aufgaben-CRUD als auch Etikettenverwaltung.
JWT oder Benutzer API SchlüsselPaginierung und FilterungInline-EtikettenAufgabe an Kalenderbrücke
Quelle
- Aufgabencontroller:
backend-nestjs/src/tasks/tasks.controller.ts - Aufgabenbeschriftungscontroller:
backend-nestjs/src/tasks/task-labels.controller.ts - DTOs:
backend-nestjs/src/tasks/dto/create-task.dto.ts,backend-nestjs/src/tasks/dto/query-tasks.dto.ts,backend-nestjs/src/tasks/dto/create-task-label.dto.ts,backend-nestjs/src/tasks/dto/update-task-labels.dto.ts - Aufzählungen:
backend-nestjs/src/entities/task.entity.ts
Authentifizierung und Berechtigungen
- Alle Routen auf dieser Seite erfordern eine Authentifizierung.
- Der Aufgaben- und Labelbesitz ist auf den aktuellen Benutzer beschränkt.
- Aufgabenbezeichnungsrouten sind sowohl unter
/api/tasks/labelsals auch unter der Vorgängerversion/api/task-labelsverfügbar.
Endpunktreferenz
Aufgaben
| Methode | Pfad | Zweck | Anfrage oder Anfrage | Auth | Quelle |
|---|---|---|---|---|---|
POST | /api/tasks | Erstellen Sie eine Aufgabe. | Körper: Aufgabenfelder | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
GET | /api/tasks | Listen Sie Aufgaben mit Filtern auf. | Abfrage: status,priority,search,dueFrom,dueTo,labelIds,sortBy,sortDirection,page,limit | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
GET | /api/tasks/:id | Holen Sie sich eine Aufgabe. | Pfad: id | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
PATCH | /api/tasks/:id | Aktualisieren Sie eine Aufgabe. | Pfad: id, Text: Teilaufgabenfelder | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
DELETE | /api/tasks/:id | Eine Aufgabe löschen. | Pfad: id | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
POST | /api/tasks/:id/labels | Ersetzen oder erweitern Sie Aufgabenbezeichnungen. | Pfad: id, Text: labelIds,inlineLabels | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
DELETE | /api/tasks/:id/labels/:labelId | Entfernen Sie ein Etikett von einer Aufgabe. | Pfad: id,labelId | JWT oder Benutzerschlüssel API | tasks/tasks.controller.ts |
Aufgabenbeschriftungen
| Methode | Pfad | Zweck | Anfrage oder Anfrage | Auth | Quelle |
|---|---|---|---|---|---|
GET | /api/tasks/labels | Aufgabenbezeichnungen auflisten. | Keine | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
POST | /api/tasks/labels | Erstellen Sie eine Aufgabenbezeichnung. | Körper: name,color | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
PATCH | /api/tasks/labels/:id | Aktualisieren Sie eine Aufgabenbezeichnung. | Pfad: id, Text: Teilbeschriftungsfelder | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
DELETE | /api/tasks/labels/:id | Löschen Sie eine Aufgabenbezeichnung. | Pfad: id | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
GET | /api/task-labels | Legacy-Alias für die Label-Auflistung. | Keine | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
POST | /api/task-labels | Legacy-Alias für die Etikettenerstellung. | Körper: name,color | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
PATCH | /api/task-labels/:id | Legacy-Alias für die Etikettenaktualisierung. | Pfad: id | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
DELETE | /api/task-labels/:id | Legacy-Alias zum Löschen von Labels. | Pfad: id | JWT oder Benutzerschlüssel API | tasks/task-labels.controller.ts |
Fordern Sie Formen an
Aufgabennutzlast
CreateTaskDto in backend-nestjs/src/tasks/dto/create-task.dto.ts
title: erforderlich, maximal 240 Zeichenbody: optional, max. 8000 ZeichenbodyFormat: optional, derzeit nurmarkdowncolor: optionale 6-stellige Hexadezimalfarbepriority: optionale Aufzählunghigh|medium|lowstatus: optionale Aufzählungtodo|in_progress|doneplace: optional, maximal 255 ZeichendueDate: optionale ISO-DatumszeichenfolgedueEnd: optionale ISO-DatumszeichenfolgedueTimezone: optional, maximal 100 ZeichenassigneeId: optionale GanzzahllabelIds: optionales eindeutiges Ganzzahl-Array, maximal 12 Elemente
Entitätsstandardwerte von backend-nestjs/src/entities/task.entity.ts
bodyFormat:markdowncolor:#eab308priority:mediumstatus:todo
Abfragefilter
QueryTasksDto
status: optionale Aufzählungtodo|in_progress|donepriority: optionale Aufzählunghigh|medium|lowsearch: optionale Zeichenfolge, maximal 120 ZeichendueFrom: optionale ISO-DatumszeichenfolgedueTo: optionale ISO-DatumszeichenfolgelabelIds: optionales eindeutiges Ganzzahl-Array, maximal 10 ElementesortBy:updatedAt|createdAt|dueDatesortDirection:asc|descpage: int>= 1, Standard1limit: int1..100, Standard25
Beschriften Sie Nutzlasten
CreateTaskLabelDto.name: erforderlich, maximal 64 ZeichenCreateTaskLabelDto.color: optionale 6-stellige HexadezimalfarbeUpdateTaskLabelsDto.labelIds: optionale IDs vorhandener LabelsUpdateTaskLabelsDto.inlineLabels: optionale neue Labels zum Erstellen und Anhängen in einem Aufruf
Beispielanrufe
Erstellen Sie eine Aufgabe
curl -X POST "$PRIMECAL_API/api/tasks" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Pack school bags",
"priority": "high",
"dueDate": "2026-03-30T18:00:00.000Z",
"dueTimezone": "Europe/Budapest",
"labelIds": [3, 7]
}'
Aufgaben filtern
curl "$PRIMECAL_API/api/tasks?status=todo&sortBy=updatedAt&sortDirection=desc&limit=25" \
-H "Authorization: Bearer $TOKEN"
Erstellen Sie ein Etikett
curl -X POST "$PRIMECAL_API/api/tasks/labels" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "School",
"color": "#14b8a6"
}'
Hinweise zu Reaktion und Verhalten
- Aufgaben können über die Aufgaben-Kalender-Brücke mit gespiegelten Kalenderereignissen verknüpft werden, diese Verknüpfung wird jedoch in diesen DTOs nicht direkt konfiguriert.
POST /api/tasks/:id/labelsunterstützt sowohl vorhandene Etiketten als auch die Inline-Etikettenerstellung.- Aufgabenbeschriftungsrouten werden aus Kompatibilitätsgründen absichtlich unter dem alten Pfad
/api/task-labelsdupliziert.
Best Practices
- Verwenden Sie
sortBy=updatedAtund einen kleinenlimitfür interaktive Aufgabenlisten. - Bevorzugen Sie
labelIdsbeim Anhängen bekannter Labels undinlineLabelsnur, wenn das Label wirklich noch nicht existiert. - Halten Sie
dueTimezoneexplizit für Aufgaben, die über Zeitzonen hinweg gespiegelt oder interpretiert werden können. - Behandeln Sie
/api/tasks/labelsals kanonischen Labelpfad und/api/task-labelsals Kompatibilitätsroute.