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.
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/labelset l’ancien/api/task-labels.
Référence du point de terminaison
Tâches
| Méthode | Chemin | Objectif | Demande ou requête | Authentification | Source |
|---|---|---|---|---|---|
POST | /api/tasks | Créez une tâche. | Corps : champs de tâches | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
GET | /api/tasks | Répertoriez les tâches avec des filtres. | Requête : status,priority,search,dueFrom,dueTo,labelIds,sortBy,sortDirection,page,limit | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
GET | /api/tasks/:id | Obtenez une tâche. | Chemin : id | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
PATCH | /api/tasks/:id | Mettez à jour une tâche. | Chemin : id, corps : champs de tâches partiels | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
DELETE | /api/tasks/:id | Supprimez une tâche. | Chemin : id | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
POST | /api/tasks/:id/labels | Remplacez ou étendez les étiquettes de tâches. | Chemin : id, corps : labelIds,inlineLabels | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
DELETE | /api/tasks/:id/labels/:labelId | Supprimez une étiquette d’une tâche. | Chemin : id,labelId | Clé JWT ou utilisateur API | tasks/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éthode | Chemin | Objectif | Demande ou requête | Authentification | Source |
|---|---|---|---|---|---|
GET | /api/tasks/:id/checklist-items | Répertoriez les éléments de liste de contrôle d'une tâche, dans l'ordre. | Chemin : id | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
POST | /api/tasks/:id/checklist-items | Ajoutez un élément de liste de contrôle. Renvoie la liste de contrôle complète mise à jour. | Chemin : id, corps : title | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
PATCH | /api/tasks/:id/checklist-items/:itemId | Renommez, réorganisez ou cochez un élément. Renvoie la liste de contrôle complète mise à jour. | Chemin : id,itemId, corps : partiel title,isDone,order | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
DELETE | /api/tasks/:id/checklist-items/:itemId | Supprimez un élément de liste de contrôle. Renvoie la liste de contrôle complète mise à jour. | Chemin : id,itemId | Clé JWT ou utilisateur API | tasks/tasks.controller.ts |
Étiquettes de tâches
| Méthode | Chemin | Objectif | Demande ou requête | Authentification | Source |
|---|---|---|---|---|---|
GET | /api/tasks/labels | Répertoriez les étiquettes des tâches. | Aucun | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
POST | /api/tasks/labels | Créez une étiquette de tâche. | Corps : name,color | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
PATCH | /api/tasks/labels/:id | Mettez à jour une étiquette de tâche. | Chemin : id, corps : champs d'étiquette partiels | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
DELETE | /api/tasks/labels/:id | Supprimez une étiquette de tâche. | Chemin : id | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
GET | /api/task-labels | Alias hérité pour la liste des étiquettes. | Aucun | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
POST | /api/task-labels | Alias hérité pour la création d’étiquettes. | Corps : name,color | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
PATCH | /api/task-labels/:id | Alias hérité pour la mise à jour des étiquettes. | Chemin : id | Clé JWT ou utilisateur API | tasks/task-labels.controller.ts |
DELETE | /api/task-labels/:id | Alias hérité pour la suppression des étiquettes. | Chemin : id | Clé JWT ou utilisateur API | tasks/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èresbody: facultatif, maximum 8 000 caractèresbodyFormat: facultatif, actuellement uniquementmarkdowncolor: couleur hexadécimale à 6 chiffres en optionpriority: énumération facultativehigh|medium|lowstatus: énumération facultativetodo|in_progress|doneplace: facultatif, maximum 255 caractèresdueDate: chaîne de date ISO facultativedueEnd: chaîne de date ISO facultativedueTimezone: facultatif, maximum 100 caractèresassigneeId: entier facultatiflabelIds: 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:markdowncolor:#eab308priority:mediumstatus: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èresisDone: booléenorder: entier — pas de point de terminaison de réorganisation dédié ; définissezorderdirectement 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 facultativetodo|in_progress|donepriority: énumération facultativehigh|medium|lowsearch: chaîne facultative, maximum 120 caractèresdueFrom: chaîne de date ISO facultativedueTo: chaîne de date ISO facultativelabelIds: tableau d'entiers uniques en option, maximum 10 élémentssortBy:updatedAt|createdAt|dueDatesortDirection:asc|descpage: entier>= 1, par défaut1limit: entier1..100, par défaut25
Charges utiles d’étiquetage
CreateTaskLabelDto.name: obligatoire, maximum 64 caractèresCreateTaskLabelDto.color: couleur hexadécimale à 6 chiffres en optionUpdateTaskLabelsDto.labelIds: identifiants facultatifs des étiquettes existantesUpdateTaskLabelsDto.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/labelsprend 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-labelspour 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
orderpuis parid— 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=updatedAtet un petitlimitpour les listes de tâches interactives. - Préférez
labelIdslorsque vous attachez des étiquettes connues etinlineLabelsuniquement lorsque l'étiquette n'existe vraiment pas encore. - Gardez
dueTimezoneexplicite pour les tâches qui peuvent être mises en miroir ou interprétées sur plusieurs fuseaux horaires. - Traitez
/api/tasks/labelscomme chemin d'étiquette canonique et/api/task-labelscomme route de compatibilité.