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 inclure à la fois la tâche CRUD et la gestion des étiquettes.
JWT ou clé utilisateur APIPagination et filtrageÉtiquettes en ligneTâche vers le pont de calendrier
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 |
É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
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"
}'
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é.
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é.