Zum Hauptinhalt springen
Was this helpful?

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/labels als auch unter der Vorgängerversion /api/task-labels verfügbar.

Endpunktreferenz

Aufgaben

MethodePfadZweckAnfrage oder AnfrageAuthQuelle
POST/api/tasksErstellen Sie eine Aufgabe.Körper: AufgabenfelderJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
GET/api/tasksListen Sie Aufgaben mit Filtern auf.Abfrage: status,priority,search,dueFrom,dueTo,labelIds,sortBy,sortDirection,page,limitJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
GET/api/tasks/:idHolen Sie sich eine Aufgabe.Pfad: idJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
PATCH/api/tasks/:idAktualisieren Sie eine Aufgabe.Pfad: id, Text: TeilaufgabenfelderJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
DELETE/api/tasks/:idEine Aufgabe löschen.Pfad: idJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
POST/api/tasks/:id/labelsErsetzen oder erweitern Sie Aufgabenbezeichnungen.Pfad: id, Text: labelIds,inlineLabelsJWT oder Benutzerschlüssel APItasks/tasks.controller.ts
DELETE/api/tasks/:id/labels/:labelIdEntfernen Sie ein Etikett von einer Aufgabe.Pfad: id,labelIdJWT oder Benutzerschlüssel APItasks/tasks.controller.ts

Aufgabenbeschriftungen

MethodePfadZweckAnfrage oder AnfrageAuthQuelle
GET/api/tasks/labelsAufgabenbezeichnungen auflisten.KeineJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
POST/api/tasks/labelsErstellen Sie eine Aufgabenbezeichnung.Körper: name,colorJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
PATCH/api/tasks/labels/:idAktualisieren Sie eine Aufgabenbezeichnung.Pfad: id, Text: TeilbeschriftungsfelderJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
DELETE/api/tasks/labels/:idLöschen Sie eine Aufgabenbezeichnung.Pfad: idJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
GET/api/task-labelsLegacy-Alias ​​für die Label-Auflistung.KeineJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
POST/api/task-labelsLegacy-Alias ​​für die Etikettenerstellung.Körper: name,colorJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
PATCH/api/task-labels/:idLegacy-Alias ​​für die Etikettenaktualisierung.Pfad: idJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts
DELETE/api/task-labels/:idLegacy-Alias ​​zum Löschen von Labels.Pfad: idJWT oder Benutzerschlüssel APItasks/task-labels.controller.ts

Fordern Sie Formen an

Aufgabennutzlast

CreateTaskDto in backend-nestjs/src/tasks/dto/create-task.dto.ts

  • title: erforderlich, maximal 240 Zeichen
  • body: optional, max. 8000 Zeichen
  • bodyFormat: optional, derzeit nur markdown
  • color: optionale 6-stellige Hexadezimalfarbe
  • priority: optionale Aufzählung high|medium|low
  • status: optionale Aufzählung todo|in_progress|done
  • place: optional, maximal 255 Zeichen
  • dueDate: optionale ISO-Datumszeichenfolge
  • dueEnd: optionale ISO-Datumszeichenfolge
  • dueTimezone: optional, maximal 100 Zeichen
  • assigneeId: optionale Ganzzahl
  • labelIds: optionales eindeutiges Ganzzahl-Array, maximal 12 Elemente

Entitätsstandardwerte von backend-nestjs/src/entities/task.entity.ts

  • bodyFormat: markdown
  • color: #eab308
  • priority: medium
  • status: todo

Abfragefilter

QueryTasksDto

  • status: optionale Aufzählung todo|in_progress|done
  • priority: optionale Aufzählung high|medium|low
  • search: optionale Zeichenfolge, maximal 120 Zeichen
  • dueFrom: optionale ISO-Datumszeichenfolge
  • dueTo: optionale ISO-Datumszeichenfolge
  • labelIds: optionales eindeutiges Ganzzahl-Array, maximal 10 Elemente
  • sortBy: updatedAt|createdAt|dueDate
  • sortDirection: asc|desc
  • page: int >= 1, Standard 1
  • limit: int 1..100, Standard 25

Beschriften Sie Nutzlasten

  • CreateTaskLabelDto.name: erforderlich, maximal 64 Zeichen
  • CreateTaskLabelDto.color: optionale 6-stellige Hexadezimalfarbe
  • UpdateTaskLabelsDto.labelIds: optionale IDs vorhandener Labels
  • UpdateTaskLabelsDto.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/labels unterstützt sowohl vorhandene Etiketten als auch die Inline-Etikettenerstellung.
  • Aufgabenbeschriftungsrouten werden aus Kompatibilitätsgründen absichtlich unter dem alten Pfad /api/task-labels dupliziert.

Best Practices

  • Verwenden Sie sortBy=updatedAt und einen kleinen limit für interaktive Aufgabenlisten.
  • Bevorzugen Sie labelIds beim Anhängen bekannter Labels und inlineLabels nur, wenn das Label wirklich noch nicht existiert.
  • Halten Sie dueTimezone explizit für Aufgaben, die über Zeitzonen hinweg gespiegelt oder interpretiert werden können.
  • Behandeln Sie /api/tasks/labels als kanonischen Labelpfad und /api/task-labels als Kompatibilitätsroute.