NOÉ cherche un·e développeur·euse bénévole ! Intéressé·e ? Envoyez un email à hello@noe-app.io.
Aller au contenu principal

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é.

Attention

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
}