Questionnaires — PRE / POST / SATISFACTION
Questionnaires d’évaluation avant/après formation et de satisfaction. Génération automatisée via Mistral (IA), analyse de sentiment et soumission des réponses apprenant.
Types de questions supportés
- SCALE — échelle numérique (min/max, défaut 0–10). Exemple : satisfaction, niveau perçu.
- CHOICE — choix unique ou multiple (champ
multi: boolean), avec liste d’options. - TEXT — réponse libre. Analysée par IA dans /analyze (thèmes, sentiment, verbatims).
Crédits IA
Les endpoints marqués IA consomment des crédits du module ai-credits. Pattern guard-then-consume : le solde est vérifié avant d’exécuter l’appel Mistral. Solde insuffisant → 402 sans facturation. Voir le Credit Store pour recharger.
Endpoints détaillés
/api/v1/questionnairesLister les questionnaires
Liste paginée des questionnaires du tenant. Filtrable par type et par cours.
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| page | query | non | 1 | — |
| perPage | query | non | 20 | — |
| type | query | non | PRE | PRE | POST | SATISFACTION |
| courseId | query | non | crs_abc123 | Filtrer par formation |
Réponses
- 200Liste paginéeRéponse 200 · JSON
Exemples
/api/v1/questionnaires/:idDétail d’un questionnaire
Retourne le questionnaire complet avec toutes ses questions et leurs options.
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Réponses
- 200OKRéponse 200 · JSON
- 404Questionnaire introuvable
Exemples
/api/v1/questionnairesCréer un questionnaire (manuel)
Création manuelle. Pour générer via IA, utiliser /regenerate-with-ai ou /course/:courseId/generate-all.
- Questionnaires
Corps de requête
Content-Type : application/json
Réponses
- 201Questionnaire crééRéponse 201 · JSON
- 422Validation échouée
Exemples
/api/v1/questionnaires/:idModifier un questionnaire
Mise à jour partielle (titre, questions). Envoyer uniquement les champs modifiés.
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Corps de requête
Content-Type : application/json
Réponses
- 200Mis à jour
- 404Introuvable
Exemples
/api/v1/questionnaires/:idSupprimer un questionnaire
Supprime un questionnaire. Si des réponses existent, le questionnaire est archivé (soft delete).
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Réponses
- 204Supprimé / archivé
- 404Introuvable
Exemples
/api/v1/questionnaires/:id/regenerate-with-aiRégénérer via IA (Mistral)
Régénère le contenu (questions et options) via Mistral en se basant sur la formation associée. Coût : 20 crédits AI. Pattern guard-then-consume : le solde est vérifié AVANT consommation.
- Questionnaires
- AI
- Credits
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Corps de requête
Content-Type : application/json
Réponses
- 200Questionnaire régénéré, crédits décomptésRéponse 200 · JSON
- 402Solde de crédits insuffisant
- 404Questionnaire ou formation introuvable
Exemples
/api/v1/questionnaires/course/:courseId/generate-allGénérer PRE + POST + SATISFACTION pour un cours
Génère les 3 questionnaires (PRE, POST, SATISFACTION) pour une formation via Mistral. Coût : 15 crédits × 3 = 45 crédits AI. Guard de 75 crédits min imposé avant exécution (marge de sécurité).
- Questionnaires
- AI
- Credits
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| courseId | path | oui | crs_abc123 | Identifiant de la formation |
Corps de requête
Content-Type : application/json
Réponses
- 201Les 3 questionnaires créésRéponse 201 · JSON
- 402Solde insuffisant (guard 75 crédits min)Réponse 402 · JSON
Exemples
/api/v1/questionnaires/:id/responsesSoumettre des réponses (apprenant)
L’apprenant soumet ses réponses au questionnaire. Le scoring (si applicable) est calculé côté serveur.
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Corps de requête
Content-Type : application/json
Réponses
- 201Réponse enregistréeRéponse 201 · JSON
- 409Déjà répondu (un seul envoi par apprenant)
Exemples
/api/v1/questionnaires/:id/responsesLister les réponses (admin/creator)
Réservé aux rôles ADMIN ou CREATOR du tenant. Retourne les réponses anonymisées par défaut.
- Questionnaires
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
| page | query | non | 1 | — |
| perPage | query | non | 50 | — |
| anonymized | query | non | true | Si false, inclut l’ID apprenant |
Réponses
- 200OKRéponse 200 · JSON
- 403Rôle insuffisant
Exemples
/api/v1/questionnaires/:id/analyzeAnalyse IA (satisfaction)
Lance une analyse IA agrégée des réponses (sentiment, thèmes saillants, verbatims clés, score NPS). Coût : 10 crédits AI.
- Questionnaires
- AI
- Credits
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | qst_abc123 | — |
Réponses
- 200Analyse généréeRéponse 200 · JSON
- 402Solde insuffisant