Opérations sur les Formulaires
  • 06 Nov 2023
  • 4 Minutes à lire
  • Sombre
    Clair

Opérations sur les Formulaires

  • Sombre
    Clair

Résumé de l’article

1. Opération sur les formulaires

1.1 Récupération de la liste des formulaires

Maintenant que vous savez vous identifier pour récupérer un token, vous allez pouvoir vous en servir pour récupérer la liste de tous les formulaires auxquels vous avez accès.

Pour utiliser ce token, n'oubliez pas de le préciser dans tous vos entêtes de requêtes, de la façon suivante :

Authorization: YOUR_TOKEN // YOUR_TOKEN est à remplacer par le token obtenu par la fonction login

Pour ce faire, vous avez à disposition la fonction GET /forms, qui ne demande pas d'autre paramètre que le token obtenu précédemment pour vous identifier.
Il vous faut donc envoyer une requête GET à l'URL suivante : https://forms.kizeo.com/rest/v3/forms

Si tout se passe bien, vous devriez avoir une réponse sous la forme :

[
    {
        // Premier formulaire
        "id_1": "integer",
        "name_1": "string"
    },
    {
        // Deuxième formulaire
        "id_2": "integer",
        "name_2": "string"
    }
    // ...
]

1.2. Récupération des informations détaillées d'un formulaire

La fonction précédente permet d'obtenir les id des différents formulaires. Ce sont ces id qui nous permettent de sélectionner un formulaire en particulier pour en obtenir toutes les informations détaillées.

La fonction à utiliser est une requête en GET à envoyer à l'URL : https://forms.kizeo.com/rest/v3/forms/{formId}{formId}est l'id du formulaire dont on veut les informations.

La fonction doit normalement renvoyer un résultat sous la forme :

{
    "status": "ok",
    "message": "",
    "form": {
        "id": "form_id",
        "name": "form_name",
        // Un tableau "fields" regroupant tous les champs du formulaire représentés par leur field_name
        "fields": {
            "field_name": {
                "caption": "string",
                "type": "string",
                "required": boolean,
                "word_del_line_if_empty": boolean,
                "subtype": "string",
                "default": "",
                "min": "",
                "max": "",
                "list_id": "",
                "visible_formula": "",
                "visible_formula_json": "",
                "autocomplete": boolean,
                "same_line": boolean,
                "weight": "int",
                "read_only_for_modification": boolean,
                "dont_reinit_when_saving_line": boolean,
                "auto_format": "string",
                "help": "",
                "icon": "",
                "regex": "",
                "regex_simple": "",
                "regex_help": "",
                "color": ""
            }
        },
        // Un tableau "exports" listant les options d'export du formulaire
        "exports": [
            {
                "form_id": "form_id",
                "name": "form_name",
                "type": "word",
                "json": {
                    "exportName": "form_name",
                    "file": "fileName.docx",
                    "showInvisible": boolean
                },
                "is_default": boolean,
                "deleted": boolean,
                "computedNames": {
                    "word": "form_name",
                    "pdf": "form_name (PDF)"
                },
                "id": "int"
            },
            {
                "form_id": "form_id",
                "name": "form_name",
                "type": "word",
                "json": {
                    "exportName": "form_name 22",
                    "file": "fileName.docx",
                    "showInvisible": boolean
                },
                "is_default": boolean,
                "deleted": boolean,
                "computedNames": {
                    "word": "Test",
                    "pdf": "Test (PDF)"
                },
                "id": "int"
            }
        ],
        // Un tableau "options" représentant toutes les options associées à ce formulaire
        "options": {
            "checkbox_output_false_value": "Non",
            "checkbox_output_true_value": "Oui",
            "all_users_see_histo": boolean,
            "all_users_update_histo": boolean,
            "has_excel_unit_file": boolean,
            "excel_unit_file": null,
            "has_word_unit_file": boolean,
            "word_unit_file": "fileName.docx",
            "import_csv_template": "",
            "import_template_json": "",
            "export_excel_template": "_login;_answer_time;email;tableau#champ_de_saisie;tableau#liste",
            "export_csv_template": "",
            "unallowedUsers": "userId1,userId2",
            "allowedUsers": "userId3,userId4",
            "allow_modify": boolean,
            "allow_modify_all_users": boolean,
            "summary_title": "",
            "summary_subtitle": "",
            "allow_push": boolean,
            "allow_real_push": boolean,
            "check_mandatory": boolean,
            "order_direction": "",
            "help_form": "",
            "order": "",
            "date_planner": "",
            "latitude": "",
            "longitude": "",
            "group": "",
            "secure": boolean,
            "sms_number": "",
            "medias": "",
            "tagnfc_before_save": boolean,
            "tagnfc_content": ""
        },
        // Un tableau "currentUserRights" regroupant les droits de l'utilisateur courant sur le formulaire
        "currentUserRights": {
            "new": boolean,
            "save": boolean,
            "save_backoffice": boolean,
            "push": boolean,
            "push_backoffice": boolean
        }
    }
}

2. Exemples de codes en PHP

Si cURL n'est pas déjà préinstallé, voici un lien qui pourrait vous aider à l'installer.

2.1. Voici un exemple de requête HTTP en PHP pour obtenir la liste de tous les formulaires :


<?php

// Initialisation de la requête
$curl = curl_init();

// Définition des entêtes et paramètres 
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://forms.kizeo.com/rest/v3/forms',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: YOUR_TOKEN",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

// Envoi de la requête et affichage de la réponse
$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

2.2. L'exemple suivant montre comment obtenir les informations détaillées d'un formulaire à partir de son Id :


<?php

$formId;
// Initialisation de la requête
$curl = curl_init();

// Définition des entêtes et paramètres 
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://forms.kizeo.com/rest/v3/forms/' . $formId,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: YOUR_TOKEN",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

// Envoi de la requête et affichage de la réponse
$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

3. Exemples de codes en Java

3.1. Voici un exemple de requête HTTP en Java pour obtenir la liste de tous les formulaires :


OkHttpClient client = new OkHttpClient();

// Définition des paramètres de la requête 
Request request = new Request.Builder()
  .url("https://forms.kizeo.com/rest/v3/forms")
  .get()
  .addHeader("content-type", "application/json")
  .addHeader("Authorization", "YOUR_TOKEN")
  .addHeader("cache-control", "no-cache")
  .build();

// Envoi de la requête et affichage de la réponse
Response response = client.newCall(request).execute();

3.2. L'exemple suivant montre comment obtenir les informations détaillées d'un formulaire à partir de son Id :


string formId;
OkHttpClient client = new OkHttpClient();

// Définition des paramètres de la requête 
Request request = new Request.Builder()
  .url("https://forms.kizeo.com/rest/v3/forms/" . formId)
  .get()
  .addHeader("content-type", "application/json")
  .addHeader("Authorization", "YOUR_TOKEN")
  .addHeader("cache-control", "no-cache")
  .build();

// Envoi de la requête et affichage de la réponse
Response response = client.newCall(request).execute();

4. Exemples de codes en Javascript

4.1. Voici un exemple de requête HTTP en Javascript pour obtenir la liste de tous les formulaires :


// Définition des paramètres de la requête HTTP
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://forms.kizeo.com/rest/v3/forms",
  "method": "GET",
  "headers": {
    "content-type": "application/json",
    "Authorization": "YOUR_TOKEN",
    "cache-control": "no-cache",
  }
}

// Envoi de la requête et affichage en console de la réponse
$.ajax(settings).done(function (response) {
  console.log(response);
});

4.2. L'exemple suivant montre comment obtenir les informations détaillées d'un formulaire à partir de son Id :


var formId;
// Définition des paramètres de la requête HTTP
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://forms.kizeo.com/rest/v3/forms/" . formId,
  "method": "GET",
  "headers": {
    "content-type": "application/json",
    "Authorization": "YOUR_TOKEN",
    "cache-control": "no-cache",
  }
}

// Envoi de la requête et affichage en console de la réponse
$.ajax(settings).done(function (response) {
  console.log(response);

});