Tâches d'agence — CRUD
Gestion des tâches d'agence (agencyTasks). Concerne les tâches hors-projet (pilotage commercial, admin, maintenance). Les tâches de projet (projectTasks) ne sont pas exposées.
Source : server/publicApi/routes/planning.ts:51-176. Schéma : insertAgencyTaskSchema dans shared/schema.ts.
Vue d'ensemble
| Méthode | Path | Scope |
|---|---|---|
GET | /tasks | tasks:read |
GET | /tasks/:id | tasks:read |
POST | /tasks | tasks:write |
PATCH | /tasks/:id | tasks:write |
DELETE | /tasks/:id | tasks:delete |
Webhooks émis : task.created, task.updated, task.deleted, task.completed (status change → done ou completed).
Champs notables
| Champ | Description |
|---|---|
title | Titre de la tâche (requis) |
description | Description longue |
status | todo, in_progress, done, completed… |
priority | low, normal, high, urgent |
startDate, dueDate, completedAt | Dates ISO 8601 (string) — converties serveur |
assigneeId | UUID utilisateur (doit être membre de l'agence) |
agencyIdetcreatedBysont résolus serveur (omits du schéma Zod).
GET /tasks
Liste paginée triée par createdAt DESC.
Query params
| Param | Type | Description |
|---|---|---|
limit | int | Défaut 50, max 100 |
offset | int | Offset |
status | string | Filtre exact sur statut |
Réponse 200
json
{
"data": [
{
"id": 1,
"agencyId": 7,
"title": "Relance facture F-2026-0042",
"status": "todo",
"priority": "high",
"dueDate": "2026-05-01T00:00:00.000Z",
"createdAt": "2026-04-27T10:00:00.000Z"
}
],
"total": 17,
"limit": 50,
"offset": 0
}POST /tasks
Body
json
{
"title": "Relance facture F-2026-0042",
"description": "Email + appel si pas de retour à J+3",
"status": "todo",
"priority": "high",
"dueDate": "2026-05-01"
}Webhook émis
task.created.
PATCH /tasks/:id
Mise à jour partielle.
Webhooks émis
task.updated(toujours)task.completed(si nouveaustatus=doneoucompleted, case-insensitive)
Exemple — marquer une tâche comme terminée
bash
curl -X PATCH \
-H "x-api-key: spk_..." \
-H "Content-Type: application/json" \
-d '{"status":"done","completedAt":"2026-04-27T16:30:00.000Z"}' \
https://beta.stormeo.io/api/public/v1/tasks/42DELETE /tasks/:id
Suppression définitive.
Webhook émis
task.deleted avec { "id": 42 }.