Aller au contenu principal
Was this helpful?

Tâches API

Espace de travail des tâches

Créer des tâches, filtrer le travail et gérer les étiquettes de tâches réutilisables

Ces itinéraires renvoient à l’espace de travail de la tâche PrimeCal. Ils sont tous limités à l'utilisateur authentifié et incluent la tâche CRUD, la gestion des étiquettes, la vue Focus, la planification automatique, la délégation et les dépendances.

JWT ou clé utilisateur APIPagination et filtrageÉtiquettes en lignePlanification automatiqueDélégation et dépendances

Source

  • Contrôleur de tâches : backend-nestjs/src/tasks/tasks.controller.ts
  • Contrôleur d'étiquettes de tâches : backend-nestjs/src/tasks/task-labels.controller.ts
  • DTO : 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
  • Énumérations : backend-nestjs/src/entities/task.entity.ts

Authentification et autorisations

  • Tous les itinéraires sur cette page nécessitent une authentification.
  • La propriété des tâches et des étiquettes est limitée à l'utilisateur actuel.
  • Les itinéraires d’étiquettes de tâches sont disponibles sous /api/tasks/labels et l’ancien /api/task-labels.

Référence du point de terminaison

Tâches

MéthodeCheminObjectifDemande ou requêteAuthentificationSource
POST/api/tasksCréez une tâche.Corps : champs de tâchesClé JWT ou utilisateur APItasks/tasks.controller.ts
GET/api/tasksRépertoriez les tâches avec des filtres.Requête : status,priority,search,dueFrom,dueTo,labelIds,sortBy,sortDirection,page,limitClé JWT ou utilisateur APItasks/tasks.controller.ts
GET/api/tasks/:idObtenez une tâche.Chemin : idClé JWT ou utilisateur APItasks/tasks.controller.ts
PATCH/api/tasks/:idMettez à jour une tâche.Chemin : id, corps : champs de tâches partielsClé JWT ou utilisateur APItasks/tasks.controller.ts
DELETE/api/tasks/:idSupprimez une tâche.Chemin : idClé JWT ou utilisateur APItasks/tasks.controller.ts
POST/api/tasks/:id/labelsRemplacez ou étendez les étiquettes de tâches.Chemin : id, corps : labelIds,inlineLabelsClé JWT ou utilisateur APItasks/tasks.controller.ts
DELETE/api/tasks/:id/labels/:labelIdSupprimez une étiquette d’une tâche.Chemin : id,labelIdClé JWT ou utilisateur APItasks/tasks.controller.ts

Éléments de liste de contrôle de tâche

Sous-étapes à l'intérieur d'une seule tâche — à distinguer des dépendances de tâches (qui relient deux tâches distinctes) et des modèles de routine (qui définissent des tâches récurrentes). Utilisez ceci pour une tâche ponctuelle avec ses propres étapes, par ex. « Organiser la fête d'anniversaire » → « réserver la salle », « commander le gâteau », « envoyer les invitations ».

MéthodeCheminObjectifDemande ou requêteAuthentificationSource
GET/api/tasks/:id/checklist-itemsRépertoriez les éléments de liste de contrôle d'une tâche, dans l'ordre.Chemin : idClé JWT ou utilisateur APItasks/tasks.controller.ts
POST/api/tasks/:id/checklist-itemsAjoutez un élément de liste de contrôle. Renvoie la liste de contrôle complète mise à jour.Chemin : id, corps : titleClé JWT ou utilisateur APItasks/tasks.controller.ts
PATCH/api/tasks/:id/checklist-items/:itemIdRenommez, réorganisez ou cochez un élément. Renvoie la liste de contrôle complète mise à jour.Chemin : id,itemId, corps : partiel title,isDone,orderClé JWT ou utilisateur APItasks/tasks.controller.ts
DELETE/api/tasks/:id/checklist-items/:itemIdSupprimez un élément de liste de contrôle. Renvoie la liste de contrôle complète mise à jour.Chemin : id,itemIdClé JWT ou utilisateur APItasks/tasks.controller.ts

Étiquettes de tâches

MéthodeCheminObjectifDemande ou requêteAuthentificationSource
GET/api/tasks/labelsRépertoriez les étiquettes des tâches.AucunClé JWT ou utilisateur APItasks/task-labels.controller.ts
POST/api/tasks/labelsCréez une étiquette de tâche.Corps : name,colorClé JWT ou utilisateur APItasks/task-labels.controller.ts
PATCH/api/tasks/labels/:idMettez à jour une étiquette de tâche.Chemin : id, corps : champs d'étiquette partielsClé JWT ou utilisateur APItasks/task-labels.controller.ts
DELETE/api/tasks/labels/:idSupprimez une étiquette de tâche.Chemin : idClé JWT ou utilisateur APItasks/task-labels.controller.ts
GET/api/task-labelsAlias ​​hérité pour la liste des étiquettes.AucunClé JWT ou utilisateur APItasks/task-labels.controller.ts
POST/api/task-labelsAlias ​​hérité pour la création d’étiquettes.Corps : name,colorClé JWT ou utilisateur APItasks/task-labels.controller.ts
PATCH/api/task-labels/:idAlias ​​hérité pour la mise à jour des étiquettes.Chemin : idClé JWT ou utilisateur APItasks/task-labels.controller.ts
DELETE/api/task-labels/:idAlias ​​hérité pour la suppression des étiquettes.Chemin : idClé JWT ou utilisateur APItasks/task-labels.controller.ts

Demander des formes

Charge utile de la tâche

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

  • title : obligatoire, maximum 240 caractères
  • body : facultatif, maximum 8 000 caractères
  • bodyFormat : facultatif, actuellement uniquement markdown
  • color : couleur hexadécimale à 6 chiffres en option
  • priority : énumération facultative high|medium|low
  • status : énumération facultative todo|in_progress|done
  • place : facultatif, maximum 255 caractères
  • dueDate : chaîne de date ISO facultative
  • dueEnd : chaîne de date ISO facultative
  • dueTimezone : facultatif, maximum 100 caractères
  • assigneeId : entier facultatif
  • labelIds : tableau d'entiers uniques en option, maximum 12 éléments

Valeurs par défaut de l'entité à partir de backend-nestjs/src/entities/task.entity.ts

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

Charges utiles des éléments de liste de contrôle

CreateTaskChecklistItemDto

  • title : obligatoire, maximum 240 caractères

UpdateTaskChecklistItemDto (tous facultatifs)

  • title : maximum 240 caractères
  • isDone : booléen
  • order : entier — pas de point de terminaison de réorganisation dédié ; définissez order directement sur le ou les éléments que vous souhaitez déplacer

Les checklistItems d'une tâche ne sont inclus que sur GET /api/tasks/:id (la lecture d'une tâche unique), pas sur la liste paginée GET /api/tasks ni sur GET /api/tasks/focus — récupérez-les via les points de terminaison dédiés ci-dessus lorsque vous en avez besoin pour une vue en liste.

Filtres de requête

QueryTasksDto

  • status : énumération facultative todo|in_progress|done
  • priority : énumération facultative high|medium|low
  • search : chaîne facultative, maximum 120 caractères
  • dueFrom : chaîne de date ISO facultative
  • dueTo : chaîne de date ISO facultative
  • labelIds : tableau d'entiers uniques en option, maximum 10 éléments
  • sortBy : updatedAt|createdAt|dueDate
  • sortDirection : asc|desc
  • page : entier >= 1, par défaut 1
  • limit : entier 1..100, par défaut 25

Charges utiles d’étiquetage

  • CreateTaskLabelDto.name : obligatoire, maximum 64 caractères
  • CreateTaskLabelDto.color : couleur hexadécimale à 6 chiffres en option
  • UpdateTaskLabelsDto.labelIds : identifiants facultatifs des étiquettes existantes
  • UpdateTaskLabelsDto.inlineLabels : nouvelles étiquettes facultatives à créer et à attacher en un seul appel

Exemples d'appels

Créer une tâche

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]
}'

Filtrer les tâches

curl "$PRIMECAL_API/api/tasks?status=todo&sortBy=updatedAt&sortDirection=desc&limit=25" \
-H "Authorization: Bearer $TOKEN"

Créer une étiquette

curl -X POST "$PRIMECAL_API/api/tasks/labels" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "School",
"color": "#14b8a6"
}'

Ajouter et terminer un élément de liste de contrôle

curl -X POST "$PRIMECAL_API/api/tasks/60/checklist-items" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Book the venue"
}'

curl -X PATCH "$PRIMECAL_API/api/tasks/60/checklist-items/12" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"isDone": true
}'

Notes de réponse et de comportement

  • Les tâches peuvent être liées à des événements de calendrier en miroir via le pont tâche-calendrier, mais cette liaison n'est pas directement configurée dans ces DTO.
  • POST /api/tasks/:id/labels prend en charge à la fois les étiquettes existantes et la création d'étiquettes en ligne.
  • Les itinéraires des étiquettes de tâches sont intentionnellement dupliqués sous l’ancien chemin /api/task-labels pour des raisons de compatibilité.
  • Tous les points de terminaison d'éléments de liste de contrôle renvoient la liste de contrôle entière mise à jour de la tâche (pas seulement l'élément concerné), triée par order puis par id — le plus simple pour un client est de simplement remplacer sa liste locale par la réponse.
  • Les éléments de liste de contrôle n'ont pas de colonne de propriétaire propre ; chaque point de terminaison de liste de contrôle vérifie d'abord que l'appelant possède la tâche parente, puis agit sur l'élément.

Meilleures pratiques

  • Utilisez sortBy=updatedAt et un petit limit pour les listes de tâches interactives.
  • Préférez labelIds lorsque vous attachez des étiquettes connues et inlineLabels uniquement lorsque l'étiquette n'existe vraiment pas encore.
  • Gardez dueTimezone explicite pour les tâches qui peuvent être mises en miroir ou interprétées sur plusieurs fuseaux horaires.
  • Traitez /api/tasks/labels comme chemin d'étiquette canonique et /api/task-labels comme route de compatibilité.