Champs imbriqués
Guide complet sur la manipulation des champs imbriqués dans l'API NOÉ, incluant les champs personnalisés et les objets complexes.
📋 Vue d'ensemble
Les objets NOÉ peuvent contenir des champs imbriqués comme customFields
, formAnswers
, et d'autres structures complexes. Cette documentation explique comment les manipuler efficacement.
🎯 Types de champs imbriqués
1. Champs personnalisés (customFields
)
Les champs personnalisés permettent d'ajouter des propriétés supplémentaires aux objets (voir l'onglet "Champs personnalisés" dans la page "Configuration de l'événement").
Exemple de structure :
{
"_id": "507f1f77bcf86cd799439011",
"name": "Les outils du médiactiviste",
"customFields": {
"difficulte": "Débutant",
"parcours": "Communication & médias"
},
...
}
2. Réponses de formulaire (formAnswers
)
Utilisé dans les inscriptions (registrations
) pour stocker les réponses du formulaire d'inscription.
Exemple :
{
"_id": "507f1f77bcf86cd799439012",
"user": "68831872fcb40efc458b2581",
"formAnswers": {
"alimentation": "Végétarien·ne",
"savoirFaire": "Je touche en informatique et je joue du djembé ;)",
"telephone": "+33 6 12 34 56 78"
}
}
}
3. Disponibilités et créneaux
Utilisés pour les plages horaires et disponibilités pour les projets, encadrant·es et espaces.
Exemple :
{
"availabilitySlots": [
{
"start": "2024-03-15T09:00:00.000Z",
"end": "2024-03-15T12:00:00.000Z"
},
{
"start": "2024-03-15T14:00:00.000Z",
"end": "2024-03-15T17:00:00.000Z"
}
]
}
✏️ Modification des champs imbriqués
Méthode 1: Modification partielle (recommandée)
Utilisez la notation pointée pour modifier des champs spécifiques sans affecter le reste.
Syntaxe
{
"customFields.field1": "nouvelle_valeur",
"customFields.field2": "autre_valeur"
}
Exemples pratiques
Modifier un champ simple :
{
"customFields.difficulte": "Intermédiaire"
}
Ajouter/modifier un élément dans un tableau : Attention, cela remplace l'élément présent à l'index en question s'il y en un.
{
"customFields.materials.1": "Djembe"
}
Méthode 2: Modification totale
Remplacez complètement l'objet imbriqué.
Cette méthode supprime tous les champs non inclus dans la requête.
{
"customFields": {
"difficulty": "avancé",
"duration": "3h",
"newField": "nouvelle valeur"
}
}
Effacer des champs
Utilisez null
pour supprimer des champs spécifiques :
{
"customFields.oldField": null
}