Questions (Votez)
Endpoints CRUD pour les questions d'une campagne et leurs options de réponse. Module requis : Votez.
Les modifications structurelles sont bloquées une fois la campagne publiée. Configurez avant PublierCampagne.
Routes
Toutes les routes sont sous le préfixe /b2b/v1/campagnes/{campagneId}/questions.
Liste des questions
GET /b2b/v1/campagnes/{campagneId}/questions
Réponse
[
{
"id": 1,
"nom": "acceptation-convention",
"texte": "Acceptez-vous la convention collective 2026-2029 ?",
"typeQuestion": "Proposition",
"minReponses": 1,
"maxReponses": 1,
"abstentionPermise": true,
"ordre": 1,
"options": [
{ "id": "...", "texte": "Oui", "ordre": 1 },
{ "id": "...", "texte": "Non", "ordre": 2 }
]
}
]
Obtenir une question
GET /b2b/v1/campagnes/{campagneId}/questions/{questionId}
| Nom | Emplacement | Type | Description |
|---|---|---|---|
campagneId | Path | Guid | Identifiant de la campagne |
questionId | Path | int | Identifiant numérique de la question |
Créer une question
POST /b2b/v1/campagnes/{campagneId}/questions
Corps de la requête
{
"nom": "acceptation-convention",
"texte": "Acceptez-vous la convention collective 2026-2029 ?",
"typeQuestion": "Proposition",
"minReponses": 1,
"maxReponses": 1,
"abstentionPermise": true,
"options": [
{ "texte": "Oui" },
{ "texte": "Non" }
]
}
Types de questions
typeQuestion | Usage |
|---|---|
Proposition | Question Oui/Non/Abstention |
ChoixLibre | Choix multiple, minReponses/maxReponses paramétrables |
Election | Élection de candidats (options = candidats) |
Réponse
1
L'identifiant numérique de la question créée.
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Question.MinReponsesNegatif | 400 | minReponses négatif |
Question.MaxReponsesTropBas | 400 | maxReponses < 1 |
Question.MinSuperieurMax | 400 | minReponses > maxReponses |
Question.NomDejaUtilise | 409 | Le nom est déjà utilisé dans cette campagne |
Question.PosteRequisPourElection | 400 | Question de type Election sans poste |
Modifier une question
PUT /b2b/v1/campagnes/{campagneId}/questions/{questionId}
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Question.NotFound | 404 | La question n'existe pas |
Question.ModificationRestrictionsInterdite | 400 | Les restrictions ne peuvent pas changer pendant un vote ouvert |
Supprimer une question
DELETE /b2b/v1/campagnes/{campagneId}/questions/{questionId}
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Question.ADesVotes | 409 | Des votes ont été enregistrés — suppression bloquée |
Réordonner les questions
POST /b2b/v1/campagnes/{campagneId}/questions/reorder
Corps de la requête
Tableau JSON de tous les questionId dans l'ordre voulu :
[3, 1, 2]
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Question.OrdreIdsDupliques | 400 | La liste contient des doublons |
Question.OrdreIdsManquants | 400 | La liste ne couvre pas toutes les questions |
Ajouter une option à une question
POST /b2b/v1/campagnes/{campagneId}/questions/{questionId}/options
Corps de la requête
{
"texte": "Oui",
"information": null
}
Réponse
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
L'identifiant Guid de l'option créée.
Modifier une option
PUT /b2b/v1/campagnes/{campagneId}/questions/{questionId}/options/{optionId}
Supprimer une option
DELETE /b2b/v1/campagnes/{campagneId}/questions/{questionId}/options/{optionId}
Voir aussi
IQuestionsClient— client SDK .NET- Campagnes · Votants
- Guide — workflow de vote