Variables
Les variables sont associées aux colonnes des tableaux de données. Elles peuvent être partagées entre différentes bases de données.
Général
Actions générales pour gérer vos variables.
client.variables.suivreVariables({ f })
Recherche les variables appartenant au compte présent. Pour rechercher des variables d'autres utilisatrices sur le réseau Constellation, voir la section réseau.
Paramètres
Nom | Type | Description |
---|---|---|
f | (variables: string[]) => void | Cette fonction sera appelée avec la liste des identifiants des variables retrouvées chaque fois que celle-ci est modifiée. |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const variables = ref<string[]>();
await client.variables.suivreVariables({ f: x => variables.value = x });
client.variables.créerVariable({ catégorie, épingler })
Crée une nouvelle variable.
Paramètres
Nom | Type | Description |
---|---|---|
catégorie | catégorieVariables ` | [ catégorieBaseVariables`](#catégoriebasevariables) |
épingler | boolean | Si nous épinglons la nouvelle variable. Vrai par défaut. |
Retour
Type | Description |
---|---|
Promise<string> | L'identifiant de la nouvelle variable. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: 'numérique' });
client.variables.copierVariable({ idVariable })
Crée une copie d'une variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable à copier. |
Retour
Type | Description |
---|---|
Promise<string> | L'identifiant de la nouvelle variable. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: 'numérique' });
const idCopie = await client.variables.copierVariable({ idVariable });
client.variables.inviterAuteur({ idVariable, idCompteAuteur, rôle })
Inviter une autre utilisatrice à modifier une variable qui vous appartient. Attention ! Une fois invitée, une personne ne peut pas être désinvitée.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
idCompteAuteur | string | L'identifiant du compte de la personne à inviter. |
rôle | `"MODÉRATEUR" | "MEMBRE"` |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "chaîne" });
await client.variables.inviterAuteur({
idVariable,
idCompteAuteur: "idDuCompteDeMonAmiÀQuiJeFaisConfiance",
rôle: "MODÉRATEUR"
});
client.variables.effacerVariable({ idVariable })
Effacer une variable. Étant donné la structure distribuée de Constellation, cette action effacera la variable de votre dispositif, mais ne pourra pas forcer les autres membres du réseau à l'effacer également.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable à effacer. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: 'numérique' });
await client.variables.effacerVariable({ idVariable });
client.variables.suivreQualitéVariable({ idVariable })
Suivre une mesure (subjective, de 0 à 1) de la qualité d'une variable. 1 indique la meilleure qualité.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
f | (qualité: number) => void | Une fonction qui sera appelée avec la qualité de la variable chaque fois que celle-ci change. |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const qualité = ref<number>();
const fOublierSuivi = await client.variables.suivreQualitéVariable({
idVariable,
f: x => qualité.value = x
});
Noms
Dans Constellation, chaque variable est définie par un code identifiant et peut ensuite être nommée dans autant de langues que vous le souhaitez.
client.variables.sauvegarderNomVariable({ idVariable, langue, nom })
Sauvegarde le nom de la variable dans une langue donnée.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
nom | string | Le nom de la variable. |
langue | string | La langue du nom. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.sauvegarderNomVariable({
idVariable,
langue: "fr",
nom: "Précipitation"
});
client.variables.sauvegarderNomsVariable({ idVariable, noms })
Sauvegarde le nom de la variable dans plusieurs langues en même temps.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
noms | { [langue: string]: string } | Les noms de la variable, indexés par langue. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.sauvegarderNomsVariable({
idVariable,
noms: { fr: "Précipitation", த: "மழைப்பொழிவு"}
});
client.variables.effacerNomVariable({ idVariable, langue })
Efface la traduction du nom de la variable dans une langue donnée.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
langue | string | La langue dont ont doit effacer le nom. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.effacerNomVariable({ idVariable, langue: "fr" });
client.variables.suivreNomsVariable({ idVariable, f })
Suit les noms (traduits en différentes langues) de la variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
f | (noms: { [langue: string]: string }) => void | Une fonction qui sera appelée avec les noms de la variable chaque fois qu'ils changent |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const fOublierNoms = await client.variables.suivreNomsVariable({
idVariable,
f: async noms => {
console.log(noms);
await fOublierNoms();
}
});
await client.variables.sauvegarderNomsVariable({
idVariable,
noms: { fr: "Précipitation", த: "மழைப்பொழிவு"}
});
Descriptions
Dans Constellation, chaque variable peut aussi être accompagnée d'une description plus informative.
client.variables.sauvegarderDescriptionVariable({ idVariable, langue, nom })
Sauvegarde la description de la variable dans une langue donnée.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
description | string | La description de la variable. |
langue | string | La langue de la description. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.sauvegarderDescriptionVariable({
idVariable,
langue: "fr",
description: "Quantité de précipitation"
});
client.variables.sauvegarderDescriptionsVariable({ idVariable, descriptions })
Sauvegarde la description d'une variable dans plusieurs langues en même temps.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
descriptions | { [langue: string]: string } | Les descriptions de la variable, indexées par langue. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.sauvegarderDescriptionsVariable({
idVariable,
descriptions: {
fr: "La quantité de précipitation",
த: "மழைப்பொழிவு அளவு"
}
});
client.variables.effacerDescriptionVariable({ idVariable, langue })
Efface la traduction d'une description de la variable dans une langue donnée.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
langue | string | La langue dont ont doit effacer la description. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
await client.variables.sauvegarderDescriptionsVariable({
idVariable,
descriptions: {
fr: "La quantité de précipitation",
த: "மழைப்பொழிவு அளவு"
}
});
await client.variables.effacerDescriptionVariable({ idVariable, langue: "fr" });
client.variables.suivreDescriptionsVariable({ idVariable, f })
Suit les descriptions (traduites en différentes langues) de la variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
f | (descriptions: { [langue: string]: string }) => void | Une fonction qui sera appelée avec les descriptions de la variable chaque fois qu'elles changent |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const fOublierDescriptions = await client.variables.suivreDescriptionsVariable({
idVariable,
f: async descrs => {
console.log(descrs);
await fOublierDescriptions();
}
});
await client.variables.sauvegarderDescriptionVariable({
idVariable,
langue: "fr",
description: "Concentration de Na+ dans le sol"
});
Catégories
Chaque variable est associée à une catégorie, qui, comme dans un tableau Excel ou LibreOffice peut être numérique, de texte, ou de date. Cependant, Constellation vous offre aussi beaucoup d'autres formes de données possibles, tels les fichiers audio, image et vidéo que vous pouvez ajouter directement dans les cellules de vos bases de données.
client.variables.sauvegarderCatégorieVariable({ idVariable, catégorie })
Sauvegarde la catégorie de la variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
catégorie | catégorieVariables ` | [ catégorieBaseVariables`](#categoriebasevariables) |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
// Changer la catégorie à une variable de type chaîne
await client.variables.sauvegarderCatégorieVariable({
idVariable,
catégorie: "chaîne"
});
// Changer la catégorie à une liste de nombres
await client.variables.sauvegarderCatégorieVariable({
idVariable,
catégorie: {
type: "liste",
catégorie: "numérique"
}
});
client.variables.suivreCatégorieVariable({ idVariable, f })
Suit la catégorie de la variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
f | (catégorie: catégorieVariables ` | [ catégorieBaseVariables](#categoriebasevariables) ) => void` |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation } from "@constl/ipa";
import { ref } from "vue";
const client = créerConstellation();
const catégorie = ref();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const fOublierCatégorie = await client.variables.suivreCatégorieVariable({
idVariable,
f: x => catégorie.value = x,
});
await client.variables.sauvegarderCatégorieVariable({
idVariable,
catégorie: "vidéo"
});
Unités
...à venir
Règles
Vous pouvez ajouter des règles à vos variables Constellation. Ces règles seront utilisées pour valider les données associées à ces variables. Les règles peuvent être ajoutées soit aux variables (décrit ci-dessous), soit directement aux tableaux des bases de données. Dans ce premier cas, les règles s'appliqueront à tous les tableaux qui utilisent cette variable.
CONSEIL
Les règles peuvent être de différentes formes. Elles peuvent s'assurer qu'une variable numérique reste dans les bornes prévues - disons, que la latitude et la longitude restent bien sur la planète Terre - ou bien vérifier que les valeurs font partie d'une liste de valeurs catégoriques permises. Elles peuvent aussi être relatives (par exemple, que la température minimum ne peut être supérieure à la température maximum).
Pour en apprendre plus sur les règles, voir la section correspondante.
client.variables.ajouterRègleVariable({ idVariable, règle, idRègle })
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
règle | valid.règleVariable | La règle à ajouter. |
idRègle | `string | undefined` |
Retour
Type | Description |
---|---|
Promise<string> | L'identifiant unique de la nouvelle règle. |
Exemple
import { créerConstellation, type valid } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const règle: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">=",
},
};
// La variable doit être une valeur non-négative
const idRègle = await client.variables.ajouterRègleVariable({
idVariable,
règle:
});
client.variables.modifierRègleVariable({ idVariable, règleModifiée, idRègle })
Permet de modifier une règle existante.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
règleModifiée | valid.règleVariable | La règle modifiée. |
idRègle | string | L'identifiant de la règle originale. |
Exemple
import { créerConstellation, type valid } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const règle: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">=",
},
};
// La variable doit être une valeur non-négative
const idRègle = await client.variables.ajouterRègleVariable({
idVariable,
règle:
});
// Après tout, elle doit être positive
const règleModifiée: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">",
},
};
await client.variables.modifierRègleVariable({
idVariable,
règleModifiée,
idRègle
});
client.variables.effacerRègleVariable({ idVariable, idRègle })
Efface une règle existante.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
idRègle | `string | undefined` |
Exemple
import { créerConstellation, type valid } from "@constl/ipa";
const client = créerConstellation();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const règle: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">=",
},
};
// La variable doit être une valeur non-négative
const idRègle = await client.variables.ajouterRègleVariable({
idVariable,
règle
});
// On change d'avis !
await client.variables.effacerRègleVariable({
idVariable,
idRègle
});
client.variables.suivreRèglesVariable({ idVariable, f })
Suit les règles associées à la variable.
Paramètres
Nom | Type | Description |
---|---|---|
idVariable | string | L'identifiant de la variable. |
f | (règles: règleVariableAvecId []) => void | Une fonction qui sera appelée avec les règles de la variable chaque fois que celles-ci changent. |
Retour
Type | Description |
---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation, type valid } from "@constl/ipa";
import { ref } from "vue";
const client = créerConstellation();
const règles = ref<valid.règleVariableAvecId[]>();
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const fOublierRègles = await client.variables.suivreRèglesVariable({
idVariable,
f: x => règles.value = x,
});
const règle: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">=",
},
};
// La variable doit être une valeur non-négative
await client.variables.ajouterRègleVariable({
idVariable,
règle:
});
Types
Quelques types TypeScript sont associés aux variables Constellation.
catégorieVariables
Les variables peuvent être de catégorie simple
(une seule valeur permise) ou bien liste
(plusieurs valeurs permises, mais toutes du même type).
type catégorieVariables =
| {
type: "simple";
catégorie: catégorieBaseVariables;
}
| {
type: "liste";
catégorie: catégorieBaseVariables;
};
catégorieBaseVariables
Les variables Constellation sont associées à l'une de plusieurs catégories de base possibles.
numérique
: Une valeur numérique, telle la longitude ou la précipitation.horoDatage
: Une date, avec ou sans heure précisée (par exemple, date de prélévement d'un échantillon).intervaleTemps
: Une intervale de temps entre deuxhoroDatages
. Par exemple, l'intervale de temps sur lequel a été calculé la température maximale de la journée.chaîneNonTraductible
: Du texte qui peut être traduit en différentes langues (par exemple, le nom d'une espèce animale observée).chaîne
: Du texte qui ne doit pas être traduit (par exemple, le code identifiant un échantillon).booléen
: Valeur vraie ou fausse (par exemple, s'il a plu hier).géojson
: Données géographiques de format geoJSON.vidéo
: Une vidéo.audio
: Un fichier audio.image
: Un fichier image.fichier
: Un fichier de type arbitraire.
CONSEIL
Astuce de pro : Pour d'autres catégories éventuelles qui ne correspondraient pas bien à l'une des catégories incluses avec Constellation ci-dessus (par exemple, des structures JSON propres à votre application), nous vous recommandons de sauvegarder les données sous format texte avec une variable de catégorie chaîne
. Votre application pourra ensuite les accéder en tant que variable chaîne et les décoder comme convient.
Ces catégories sont représentées par le type suivant :
type catégorieBaseVariables =
| "numérique"
| "horoDatage"
| "intervaleTemps"
| "chaîne"
| "chaîneNonTraductible"
| "booléen"
| "géojson"
| "vidéo"
| "audio"
| "image"
| "fichier";