NOÉ cherche un·e développeur·euse ! 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
}