Generator
  • Introduction
  • Endpoints
    • /generate
  • Les spécifications
    • Construire une spécification
    • Liste des spécifications
  • Les contextes
  • Les structures conditionnelles
    • For
  • Les filtres
    • Replace
    • Date
    • Uppercase
    • Lowercase
    • UCFirst
Powered by GitBook
On this page
  • Spécifications Multiple
  • Utiliser une variable pour valider une spécification avec nos données.

Was this helpful?

  1. Les spécifications

Construire une spécification

PreviousLes spécificationsNextListe des spécifications

Last updated 5 years ago

Was this helpful?

Au sein de l'API, la spécification est représenté par un objet qu'il est possible de construire et de rendre dynamique.

  • operator : doit correspond à une spécification. ()

  • left : opérateur à gauche de la condition

  • right : opérateur à droite de la condition

  • invert : booléen qui permet d'inverser la condition (true|false). Par défaut : false

  • search : permet de rechercher une valeur dans une list

  • list : définition d'une liste dans laquelle on doit faire un search

Exemple :

{
    "operator" : "<=",
    "left" : 2,
    "right" : 4
}

La représentation de cette condition équivaut à : 2 <= 4. Si tel est le cas, la condition est valide.

Exemple avec invert :

{
    "operator" : "<=",
    "left" : 2,
    "right" : 4,
    "invert" : true
}

La représentation de cette condition équivaut à : 2 <= 4. Si ce n'est pas le cas, la condition est valide.

Spécifications Multiple

Il est possible de générer plusieurs spécifications. Il n'est pas rare de devoir en combiner plusieurs pour qu'un texte prenne plus de sens. Pour cela, il est possible de construire un tableau de spécification qui fonctionne sur un principe de OR et de AND. La première dimension d'un tableau correspond à un OR et le sous-ensemble correspond à des AND. Il devient donc théoriquement possible de construire N possibilités.

Exemple :

[ 
    [  // OR - Dimension de niveau 1
       { // AND - Dimension de niveau 2
          "operator" : "===",
          "left": 2,
          "right" : 2
       },
       { // AND - Dimension de niveau 2
          "operator" : "===",
          "left": 4,
          "right" : 4
       }
    ],
    [ // OR - Dimension de niveau 1
       { // AND - Dimension de niveau 2
          "operator" : "===",
          "left": 3,
          "right" : 2
       }
    ]
]

Sur l'exemple précédent, la spécification sera valide si : ( 2 === 2 ET 4 === 4 ) OU ( 3 === 2 )

Comme le premier ensemble est valide, la spécification globale sera satisfaite.

Utiliser une variable pour valider une spécification avec nos données.

Dans les exemples précédents, vous avez uniquement des variables en dur ce qui sera certainement très peu intéressant. Cela reviendrait à dire en permanence : "vrai" pour faire ce dont vous avez besoin.

La clé variable accepte de prendre en paramètre une écriture avec un séparateur : le # . Cela permettra de faire référence à une clé dans votre source de données.

Source de données :

{
    "home_team" : {
        "name": "Olympique Lyonnais",
        "position" : 1
    }
}

Spécification :

{
    "operator" : "===",
    "left" : 1,
    "right" : "[[home_team.position]]"
}

Le test ira donc chercher la valeur dans l'objet home_team puis, dans la clé position. La spécification sera valide puisque 1 === 1

Voir la liste