Condition Tree
Condition Trees sind eine Möglichkeit, benutzerdefinierte Bedingungen für verschiedene Skate Results Features zu definieren. Mit Condition Trees kannst du auf Variablen eines gegebenen Kontexts zugreifen und Bedingungen basierend auf diesen definieren.
Syntax
Condition Trees werden im JSON-Format geschrieben. Falls du nicht mit JSON vertraut bist, schau dir bitte die offizielle JSON-Dokumentation an.
Ein Condition Tree ist ein Objekt mit einem einzigen Schlüssel-Wert-Paar. Der Schlüssel ist der Operator und der Wert ist ein Array von Argumenten. Die Argumente können entweder Werte oder andere Condition Trees sein. Ein Wert kann entweder ein String, eine Zahl, ein Boolean, null oder eine Referenz auf eine Variable im Kontext sein. Um auf eine Variable zu referenzieren, verwende den ref-Schlüssel mit dem Variablennamen als Wert.
{ "ref": "athlete.name" }
Die folgende Tabelle listet alle verfügbaren Operatoren und ihre Syntax auf.
| Syntax | arg1 | arg2 | Erklärung |
|---|---|---|---|
true | Löst zu true auf. | ||
false | Löst zu false auf. | ||
{ "or": arg1 } | Array: Condition Trees | Löst zu true auf, wenn ein beliebiges Element von arg1 true ist. | |
{ "and": arg1 } | Array: Condition Trees | Löst zu true auf, wenn alle Elemente von arg1 true sind. | |
{ "not": arg1 } | Condition Tree | Löst zum Gegenteil von arg1 auf. | |
{ ">": [arg1, arg2] } | String, Zahl oder Ref. | String, Zahl oder Ref. | Löst zu true auf, wenn arg1 größer als arg2 ist.Löst zu false auf, wenn ein Argument keine Zahl oder String ist. |
{ ">=": [arg1, arg2] } | String, Zahl oder Ref. | String, Zahl oder Ref. | Löst zu true auf, wenn arg1 größer oder gleich arg2 ist.Löst zu false auf, wenn ein Argument keine Zahl ist. |
{ "<": [arg1, arg2] } | String, Zahl oder Ref. | String, Zahl oder Ref. | Löst zu true auf, wenn arg1 kleiner als arg2 ist.Löst zu false auf, wenn ein Argument keine Zahl ist. |
{ "<=": [arg1, arg2] } | String, Zahl oder Ref. | String, Zahl oder Ref. | Löst zu true auf, wenn arg1 kleiner oder gleich arg2 ist.Löst zu false auf, wenn die Typen keine Zahlen sind. |
{ "==": [arg1, arg2] } | Wert oder Ref. | Wert oder Ref. | Löst zu true auf, wenn arg1 gleich arg2 ist.Löst zu false auf, wenn die Typen der Argumente unterschiedlich sind. |
{ "!=": [arg1, arg2] } | Wert oder Ref. | Wert oder Ref. | Löst zu false auf, wenn arg1 nicht gleich arg2 ist.Löst zu true auf, wenn die Typen der Argumente unterschiedlich sind. |
{ "in": [arg1, arg2] } | Wert oder Ref. | Array: Wert oder Ref | Löst zu true auf, wenn arg1 in arg2 enthalten ist.Löst zu false auf, wenn die Typen der Argumente unterschiedlich sind. |
{ "not-in": [arg1, arg2] } | Wert oder Ref. | Array: Wert oder Ref | Löst zu true auf, wenn arg1 nicht in arg2 enthalten ist.Löst zu false auf, wenn die Typen der Argumente unterschiedlich sind. |
Beispiel
Der folgende Condition Tree löst zu true auf, wenn der Name des Athleten "Andi" ist und das Geschlecht des Athleten nicht "female" ist.
{
"and": [
{ "==": [{ "ref": "athlete.name" }, "Andi"] },
{ "!=": [{ "ref": "athlete.gender" }, "female"] }
]
}
Features
Condition Trees werden aktuell in den folgenden Features verwendet:
- Formulare (in Bearbeitung): Bedingte Felder, E-Mails und Validierungen
- Livestream-Einblendungen: Quellen bedingt anzeigen/ausblenden