Modèles de Champs (FieldTemplateApi)
Le module FieldTemplateApi permet de gérer les modèles de champs réutilisables pour vos services multi-service. Les modèles définissent la structure et les contraintes de validation des données collectées lors de la création de rendez-vous.
Accès : client.multiService.fieldTemplate
Méthodes
list
Liste tous les modèles de champs de l’application.
Exemple
const response = await client.multiService.fieldTemplate.list({
appId: "app_id",
apiKey: "user_api_key"
});
// Afficher les modèles disponibles
response.data.forEach(template => {
console.log(`${template.label} (${template.type})`);
});create
Crée un nouveau modèle de champ.
Exemple
// Créer un modèle de type SELECT avec options
const response = await client.multiService.fieldTemplate.create({
appId: "app_id",
apiKey: "user_api_key",
ref: "delivery_zone",
label: "Zone de livraison",
description: "Sélectionnez votre zone",
type: "SELECT",
required: true,
options: [
{
label: "Zone 1 - Centre",
value: "zone_1",
price: 1000
},
{
label: "Zone 2 - Périphérie",
value: "zone_2",
price: 2000
}
]
});
console.log(`Modèle créé: ${response.data.id}`);// Créer un modèle de type NUMBER avec contraintes
const response = await client.multiService.fieldTemplate.create({
appId: "app_id",
apiKey: "user_api_key",
ref: "quantity",
label: "Quantité",
type: "NUMBER",
min: 1,
max: 50,
required: true,
multiplier: true // Le prix sera multiplié par cette valeur
});update
Met à jour un modèle de champ existant.
Exemple
const response = await client.multiService.fieldTemplate.update({
appId: "app_id",
apiKey: "user_api_key",
id: "template_789",
label: "Zone de livraison (mise à jour)",
options: [
{ label: "Zone 1 - Centre-ville", value: "zone_1", price: 1500 },
{ label: "Zone 2 - Banlieue", value: "zone_2", price: 2500 },
{ label: "Zone 3 - Éloignée", value: "zone_3", price: 4000 }
]
});
console.log(`Modèle mis à jour: ${response.data.label}`);delete
Supprime un modèle de champ.
Exemple
const response = await client.multiService.fieldTemplate.delete({
appId: "app_id",
apiKey: "user_api_key",
id: "template_789"
});
if (response.data.deleted) {
console.log("Modèle supprimé avec succès");
}La suppression d’un modèle ne supprime pas les champs des services qui l’utilisent.
Types de champs
| Type | Description | Options de validation |
|---|---|---|
TEXT | Texte libre | minLength, maxLength, regex |
NUMBER | Valeur numérique | min, max |
SELECT | Liste à choix unique | options |
MULTIPLE_SELECT | Liste à choix multiples | options |
EMAIL | Adresse email | Validation email intégrée |
PHONE | Numéro de téléphone | Validation téléphone intégrée |
DATE | Date | - |
ADDRESS | Adresse postale | - |
Multiplicateur de prix
Lorsque multiplier: true, la valeur du champ multiplie le prix de base du service :
Prix total = Prix de base × Valeur du champ multiplicateur + Somme des suppléments d'optionsGestion des erreurs
| Code erreur | Description |
|---|---|
template-not-found | Le modèle n’existe pas ou n’appartient pas à l’application |
not-authorized | La clé API n’a pas les droits nécessaires |
invalid-request | Paramètres manquants ou invalides |
Last updated on