Aller au contenu principal

postFormsData

Envoyer les données du formulaire à la plateforme OneEntry.

🎯 Que fait cette méthode ?

Cette méthode soumet les données du formulaire à la plateforme OneEntry. Pensez-y comme à cliquer sur "Soumettre" sur un formulaire de contact - cela envoie toutes les saisies de l'utilisateur (nom, email, message, fichiers, etc.) au serveur.

Cas d'utilisation :

  • 📝 Formulaires de contact
  • 📋 Formulaires d'inscription
  • 💬 Formulaires de retour d'expérience
  • 📤 Téléchargements de fichiers
  • 🎫 Tickets de support

📖 Explication simple

Lorsque l'utilisateur remplit un formulaire sur votre site web, vous devez envoyer ces données quelque part. Cette méthode fait exactement cela - elle prend tous les champs du formulaire (texte, nombres, fichiers, etc.) et les envoie à OneEntry.

Pensez-y comme :

L'utilisateur remplit le formulaire → Votre code appelle postFormsData() → Données enregistrées dans OneEntry ✅

🚀 Exemple super simple (Commencez ici !)

Scénario : Vous avez un formulaire de contact avec juste un champ de nom.

// Étape 1 : L'utilisateur remplit le formulaire (par exemple, entre "John Doe")
// Étape 2 : Envoyez-le à OneEntry

const response = await FormData.postFormsData({
formIdentifier: "contact_us", // 👈 Le nom de votre formulaire
formModuleConfigId: 2, // 👈 ID de configuration du formulaire (depuis l'admin OneEntry)
moduleEntityIdentifier: "blog", // 👈 Où le sauvegarder (depuis OneEntry)
replayTo: null, // 👈 Email de réponse (optionnel)
status: "sent", // 👈 "envoyé" ou "brouillon"
formData: [ // 👈 Les données réelles du formulaire
{
marker: "name", // 👈 Nom du champ
type: "string", // 👈 Type de champ
value: "John Doe" // 👈 Saisie de l'utilisateur
}
]
});

// ✅ Fait ! Formulaire soumis avec succès
console.log("Formulaire soumis, ID :", response.formData.id);

C'est tout ! Maintenant voyons comment gérer différents types de champs...


📋 Ce que vous devez savoir avant d'utiliser

Avant d'appeler cette méthode, vous avez besoin de ces 3 éléments depuis le panneau d'administration OneEntry :

  1. formIdentifier - Le nom unique de votre formulaire (par exemple, "contact_us")
  2. formModuleConfigId - ID de configuration du formulaire (un nombre, par exemple, 2)
  3. moduleEntityIdentifier - Où stocker les données (par exemple, "blog", "contacts")

Comment les trouver ?

  • Connectez-vous à OneEntry Admin
  • Allez dans la section Formulaires
  • Copiez les valeurs de votre configuration de formulaire

🔧 Signature de la méthode

FormData.postFormsData(

body*, body.formIdentifier*, body.formModuleConfigId*, body.moduleEntityIdentifier*, body.replayTo*, body.status*, body.formData*, body.fileQuery, langCode

);

Schéma des paramètres

Schéma (body)

body(obligatoire): IBodyPostFormData
Corps de la requête
exemple :

{
"formIdentifier": "test-form",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
]
}

body.formIdentifier(obligatoire): string
Identifiant textuel (marqueur) du formulaire.
exemple : "form"

body.formModuleConfigId(obligatoire): number
L'identifiant unique de la configuration du module de formulaire.
exemple : 2

body.moduleEntityIdentifier(obligatoire): string
Identifiant textuel (marqueur) de l'entité du module.
exemple : "blog"

body.replayTo(obligatoire): string | null
Email pour répondre.
exemple : "some@email.com"

body.status(obligatoire): string
Statut du formulaire.
exemple : "sent"

body.formData(obligatoire): FormDataType[]
Tableau d'objets de données de formulaire.
exemple :

[
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]

body.fileQuery: IUploadingQuery
Requête de fichier optionnelle pour télécharger des fichiers.
exemple :

{
"type": "page",
"entity": "editor",
"id": 3787
}

langCode: string
Code de langue. Par défaut : "en_US"
exemple : "en_US"

Exemples

Exemple minimal


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Andrey"
}
]
};

const response = await FormData.postFormsData(body);

Exemple avec un attribut de type simple "string", "number", "float"


const body = {
"formIdentifier": "test-form",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "string_marker",
"type": "string",
"value": "Username"
},
{
"marker": "number_marker",
"type": "number",
"value": 1
},
{
"marker": "float_marker",
"type": "float",
"value": 2.256
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type simple "date", "dateTime", "time"


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "date_marker",
"type": "date",
"value": {
"fullDate": "2024-05-07T21:02:00.000Z",
"formattedValue": "08-05-2024 00:02",
"formatString": "DD-MM-YYYY HH:mm"
}
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type simple "text" (Un seul de htmlValue, plainValue ou mdValue peut être fourni)


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "about_marker",
"type": "text",
"value": [
{
"htmlValue": "<p>Hello world</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type simple "textWithHeader" (Un seul de htmlValue, plainValue ou mdValue peut être fourni)


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "textwithheader_marker",
type: "textWithHeader",
value: [
{
"header": "Titre",
"htmlValue": "<p>Hello World</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type "image"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Dans un scénario réel, vous devriez utiliser l'API File pour créer un fichier à partir de l'URL, mais pour des raisons de simplicité, nous allons utiliser une URL de fichier prédéfinie et utiliser la méthode createFileFromUrl pour cet exemple */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "image_marker",
type: "image",
value: [
file
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type "groupOfImages"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Dans un scénario réel, vous devriez utiliser l'API File pour créer un fichier à partir de l'URL, mais pour des raisons de simplicité, nous allons utiliser une URL de fichier prédéfinie et utiliser la méthode createFileFromUrl pour cet exemple */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "groupofimages_marker",
type: "groupOfImages",
value: [
file
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type "files"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Dans un scénario réel, vous devriez utiliser l'API File pour créer un fichier à partir de l'URL, mais pour des raisons de simplicité, nous allons utiliser une URL de fichier prédéfinie et utiliser la méthode createFileFromUrl pour cet exemple */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "picture_marker",
"type": "file",
"value": [
{
"filename": "files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"downloadLink": "http://my-site.com/cloud-static/files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"size": 392585
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type "radioButton" ou "list"


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "selector_marker",
"type": "list",
"value": [
{
"marker": "list",
"type": "list",
"value": ["1"]
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemple avec un attribut de type "entity" (liste imbriquée)


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "entity_marker",
"type": "entity",
"value": [25, 32, 24]
}
]
};

const response = await FormData.postFormsData(body);

Valeur - identifiants numériques pour les pages et identifiants textuels pour les produits. Les identifiants pour les produits doivent inclure le préfixe 'p-', par exemple, 'p-1-', 'p-2-', etc. p-[parentId]-[productId]


Exemple avec un attribut de type "timeInterval"


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: 'timeinterval_marker',
type: 'timeInterval',
value: [
[
"2025-02-11T16:00:00.000Z",
"2025-02-13T16:00:00.000Z"
]
]
},
]
};

const response = await FormData.postFormsData(body);

valeur — tableau de tableaux d'intervalles au format ISO 8601. par exemple 2025-02-11T16:00:00:000Z

2025 — année ; 02 — mois ; 11 — jour du mois ; T — séparateur entre la date et l'heure ; 16:00:00 — heure au format heures:minutes:secondes ; 000Z — millisecondes et indication de fuseau horaire. Z signifie que l'heure est spécifiée au format UTC.


Exemple de retour :

{
"formData": {
"formIdentifier": "test-form",
"time": "2026-01-07T04:15:52.928Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"entityIdentifier": "blog",
"fingerprint": "UQ_ue7gas",
"isUserAdmin": false,
"formModuleId": 2,
"userIdentifier": null,
"parentId": null,
"id": 3481
},
"actionMessage": ""
}

Schéma de réponse

Schéma : IPostFormResponse

formData: object
Données du formulaire.
exemple :

{
"id": 42,
"formIdentifier": "contact_form",
"time": "2023-10-01T12:00:00Z",
"entityIdentifier": "blog",
"isUserAdmin": false,
"formModuleId": 2,
"parentId": null,
"userIdentifier": null,
"formData": [
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]
}

formData.id: number
L'identifiant unique de la page du formulaire.
exemple : 12345

formData.formIdentifier: string
L'identifiant du formulaire.
exemple : "contact_form"

formData.time: string
L'heure de la soumission du formulaire.
exemple : "2023-10-01T12:00:00Z"

formData.entityIdentifier: string
L'identifiant de l'entité.
exemple : "blog"

formData.isUserAdmin: boolean
L'utilisateur est-il administrateur ?
exemple : false

formData.formModuleId: number
L'identifiant du module de formulaire.
exemple : 2

formData.parentId: any
L'identifiant parent.
exemple : null

formData.userIdentifier: any
L'identifiant de l'utilisateur.
exemple : null

formData.formData: FormDataType[]
Données des champs du formulaire.
exemple :

[
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]

actionMessage: string
Message d'action pour les données du formulaire.
exemple : "Formulaire soumis avec succès"