Skip to main content

Web modeler SDK

Description du SDK du web modeler​

Le SDK du web modeler est disponible dans le web modeler. Il permet aux utilisateurs d'accéder aux ressources depuis l'interface utilisateur et d'exécuter des calculs complexes lors de l'exécution de l'interface utilisateur.

Le SDK possède les classes suivantes

class Softyflow {}
class Collection {}
class SQLDatabase {}
class SoftyTables {}
class CustomList {}
class Report {}
class Instance {}
class Task {}
class Api {}
class Email {}
class File {}

Dans les sections suivantes, nous allons détailler chaque classe et les méthodes autorisées.

1 - Softyflow​


La classe Softyflow contient les méthodes système de Softyflow

Utilisation​

Cette classe est instanciée par défaut comme un objet nommé SF lorsque l'interface utilisateur est chargée, vous pouvez donc utiliser les méthodes directement en les appelant via l'objet "SF"

//utilisation de l'objet SF
let currentMode = this.SF.getSF_mode();

getSF_mode​

Est une fonction qui retourne le mode de l'interface utilisateur en cours d'exécution

Retourne​

TypeDescription
stringRetourne une chaîne de caractères ('test', 'uat', 'prod')

Exemples​

let currentMode = this.SF.getSF_mode();

getSF_Version​

Est une fonction qui retourne la version de l'interface utilisateur en cours d'exécution

Retourne​

TypeDescription
stringRetourne une chaîne de caractères ('test', 'uat', 'prod')

Exemples​

let currentVersion = this.SF.getSF_Version();

queryParams​

Est une fonction qui retourne les paramètres de requête

paramsDescription
selectoptionnel. Les champs à sélectionner (champs: SF_mode, SF_version, SF_screen)

Paramètres​

NomTypeDescription
selectstringLes champs sélectionnés

Retourne​

TypeDescription
stringRetourne une chaîne de caractères

Exemples​

let currentMode = this.SF.getSF_mode('SF_mode SF_version');
console.log(currentMode)
// ?SF_mode=test&SF_version=versionId

startProcess​

Est une fonction qui démarre un processus spécifique

Paramètres​

NomTypeDescription
idstringIdentifiant du processus
bodyobjectJSON des variables du processus

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.startProcess('processId', variables);

validateCaptcha​

Est une fonction qui valide une action Google reCAPTCHA v3 et retourne le jeton généré.

Paramètres​

NomTypeDescription
actionstringLe nom de l'action utilisé pour la vérification reCAPTCHA v3.

Retourne​

TypeDescription
Promise<string>Retourne une Promise qui se résout en une chaîne de jeton reCAPTCHA.

Exemples​

let token = await SF.utils.validateCaptcha("login_form");
// retourne: '03AFcWeA... (une longue chaîne de jeton de Google)'

saveNew​

Est une fonction qui vous permet de sauvegarder l'état de l'interface utilisateur

Paramètres​

NomTypeDescription
idstringIdentifiant de l'interface
bodyobjectJSON des variables de l'interface

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.saveNew('interfaceId', variables);

saveTask​

Est une fonction qui vous permet de sauvegarder l'état de l'interface de tâche

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche
bodyobjectJSON des variables de la tâche

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.saveTask('taskId', variables);

validateTask​

Permet de valider une tâche

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche
bodyobjectJSON des variables de la tâche

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.validateTask('taskId', variables);

getUserPendingTask​

Permet d'obtenir les tâches en attente assignées à l'utilisateur connecté.

Paramètres​

NomTypeDescription
limitstringLimite de résultats par page.
pagestringNuméro de page
dueDatestringDate associée.
fieldsstringChamps.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await this.SF.getUserPendingTask('limit', 'page', 'dueDate', 'fields');

uploadImage​

Est une fonction qui télécharge une image sur le serveur en utilisant une requête POST multipart/form-data.

Paramètres​

NomTypeDescription
dataFormDataUn objet FormData contenant le fichier image et toutes métadonnées supplémentaires.

Retourne​

TypeDescription
Promise<object>Retourne une Promise qui se résout en données de réponse du serveur.

Exemples​

const formData = new FormData();
formData.append("profileImage", file);

let response = await SF.utils.uploadImage(formData);
// retourne: { success: true, imageUrl: "/uploads/user123.png" }

setListFromCollection​

Permet de définir une liste de données à partir d'une collection spécifique.

Paramètres​

NomTypeDescription
collectionstringIdentifiant de la collection.
criteriaobjectJSON de requĂŞte.
limitstringLimite de résultats.
sortstringOption de tri.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let criteria = {
firstName: new RegExp("p", "i")
}
await this.SF.setListFromCollection('collectionId', criteria, 10, 'sort');

setListFromCollectionAggregation​

Est une fonction qui effectue une opération d'agrégation sur une collection spécifiée en utilisant le pipeline d'agrégation fourni.

Paramètres​

NomTypeDescription
collectionstringLe nom ou l'identifiant de la collection cible à agréger.
aggregArray<object>Un tableau d'étapes de pipeline d'agrégation (framework d'agrégation MongoDB).

Retourne​

TypeDescription
Promise<Array>Retourne une Promise qui se résout en résultat de la requête d'agrégation.

Exemples​

let results = await SF.utils.setListFromCollectionAggregation("users", [
{ $match: { age: { $gte: 18 } } },
{ $group: { _id: "$country", count: { $sum: 1 } } }
]);
// retourne: [ { _id: "USA", count: 42 }, { _id: "FR", count: 18 } ]

setListFromReport​

Est une fonction qui effectue une requête d'agrégation dynamique sur une collection de rapport, en utilisant des filtres, un tri et des options de limite.

Paramètres​

NomTypeDescription
reportstringL'identifiant ou le nom de la collection de rapport.
queryobjectUn objet représentant les conditions de filtre utilisant des opérateurs personnalisés ou MongoDB.
[limit]number(Optionnel) Limite le nombre de documents retournés.
[sort]object(Optionnel) Options de tri avec le champ by et la direction (-1 ou 1).

Retourne​

TypeDescription
Promise<Array>Retourne une Promise qui se résout en résultat de l'agrégation.

Exemples​

let result = await SF.utils.setListFromReport("monthly_sales", {
SF_createdBy: "admin@example.com",
region: "NA"
}, 10, { by: "createdAt", direction: -1 });
// retourne: [ { ... }, { ... } ]

setListFromReportAggregation​

Est une fonction qui effectue une agrégation personnalisée sur une instance de rapport en utilisant un pipeline d'agrégation fourni.

Paramètres​

NomTypeDescription
reportstringL'identifiant ou le nom de la collection de rapport.
aggregArray<object>Le pipeline d'agrégation à exécuter.

Retourne​

TypeDescription
Promise<Array>Retourne une Promise qui se résout en résultat de l'agrégation.

Exemples​

let data = await SF.utils.setListFromReportAggregation("monthly_reports", [
{ $match: { status: "completed" } },
{ $group: { _id: "$region", total: { $sum: "$amount" } } }
]);
// retourne: [ { _id: "Europe", total: 24000 }, { _id: "Asia", total: 18000 } ]

setListFromSQL​

Permet de définir une liste de données à partir de la base de données cliente.

Paramètres​

NomTypeDescription
clientDatabasestringIdentifiant de la base de données cliente.
querystringRequĂŞte de tableau.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await this.SF.setListFromSQL('clientDatabaseID', "code='MMA'");

setListFromCustomList​

Permet de définir une liste de données à partir de CustomList.

Paramètres​

NomTypeDescription
CustomListstringIdentifiant de CustomList.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await this.SF.setListFromCustomList('CustomListID');

aggregateQuery​

Permet de définir une liste de données à partir de CustomList.

Paramètres​

NomTypeDescription
typestringType de la ressource (collection, report, users, projects, external databases).
idstringIdentifiant de la ressource.
queryobjectJSON d'une valeur Ă  faire correspondre dans la ressource.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await this.SF.aggregateQuery('collection', '610c0343f6ebc7ddcb49cc3b', {value : "it"});

deleteFile​

Permet de supprimer un fichier en utilisant son identifiant.

Paramètres​

NomTypeDescription
idstringIdentifiant de la ressource.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await this.SF.deleteFile('610c0343f6ebc7ddcb49cc3b');

2 - Projects​


La classe Projects contient les méthodes qui vous permettront de gérer les projets.

Utilisation​

const projects = new Projects({ mode: 'test' });

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "status": "active" }
},
{
"$group": {
"_id": "$category",
"total": { "$sum": 1 }
}
}
]
let results = await projects.aggregate(aggregation);

3 - Users​


La classe Users contient les méthodes qui vous permettront de gérer les utilisateurs.

Utilisation​

const users = new Users();

create​

Permet de créer un nouvel utilisateur.

Paramètres​

NomTypeDescription
dataobjectContenu JSON des données utilisateur

Retourne​

TypeDescription
promiseRetourne une promesse

Data​

Voici les données utilisateur autorisées :

champDescription
emailRequis et unique. L'email de l'utilisateur (string)
lastNameRequis. Le nom de famille de l'utilisateur (string)
firstNameRequis. Le prénom de l'utilisateur (string)
groupRequis. Les identifiants des groupes d'utilisateur (array)
metadataoptionnel. Les métadonnées de l'utilisateur (json)
ideAccessRequis. Droit d'accès à l'IDE (boolean)
blockedoptionnel. Blocage de l'utilisateur (boolean)

Exemples​

let user = {
email: "email@softydev.com",
lastName : "last name",
firstName: "first name",
group: [],
metadata: {},
ideAccess: true,
blocked: false
}
await users.create(user);

update​

Permet de mettre Ă  jour un utilisateur

Paramètres​

NomTypeDescription
idstringIdentifiant de l'utilisateur.
dataobjectDonnées utilisateur.

Retourne​

TypeDescription
promiseRetourne une promesse

Data​

Les mêmes données autorisées lors de la création d'un utilisateur. Les champs sont optionnels.

Exemples​

let newData = {
ideAccess: false
}
await users.update("userId", newData);

delete​

Permet de supprimer un utilisateur.

Paramètres​

NomTypeDescription
idstringIdentifiant de l'utilisateur.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await users.delete("userId");

findById​

Permet d'obtenir un utilisateur par identifiant.

Paramètres​

NomTypeDescription
idstringIdentifiant de l'utilisateur.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let user = await users.findById("userId");

find​

Permet de lister les utilisateurs.

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let criteria = {
firstName: new RegExp("p", "i")
}
let usersList = await users.find(criteria);

count​

Permet d'obtenir le nombre d'utilisateurs.

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let criteria = {
blocked: false
}
let count = await users.count(criteria);

findAndCount​

Obtenir une liste et le nombre d'utilisateurs

Paramètres​

NomTypeDescription
bodyobjectJSON d'options.

Retourne​

TypeDescription
promiseRetourne une promesse

Options​

Ces options sont optionnelles

OptionDescription
criteriaSpécifie le filtre de sélection (par défaut : {})
fieldsSélectionne des champs spécifiques (exemple: "createdAt email")
limitNombre d'instances retournées (par défaut : 100/ sans limite : 0)
pageNuméro de page dépend de la limite (par défaut : 0)
sortbyTrie les résultats par clé (par défaut : createdAt)
directionOrdre croissant (1) ou décroissant (-1) (par défaut : -1)

Exemples​

let body = {
criteria: {
firstName: new RegExp("p", "i")
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await users.findAndCount(body);
let usersList = res.data;
let count = res.count;

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "firstName": new RegExp("z", "i") }
},
{
"$project" : {
"_id": 1,
"firstName": 1,
"lastName": 1,
"email": 1
}
}
]
let usersList = await users.aggregate([aggregation]);

addRole​

Ajoute un rĂ´le Ă  l'utilisateur en utilisant l'identifiant utilisateur et l'identifiant du groupe.

Paramètres​

NomTypeDescription
userIdstringIdentifiant utilisateur.
groupidstringIdentifiant du groupe.
modestringMode de l'interface utilisateur en cours d'exécution

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await users.addRole("userId","groupId","SF_mode");

removeRole​

Retire un rĂ´le de l'utilisateur en utilisant l'identifiant utilisateur et l'identifiant du groupe.

Paramètres​

NomTypeDescription
userIdstringIdentifiant utilisateur.
groupidstringIdentifiant du groupe.
modestringMode de l'interface utilisateur en cours d'exécution

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await users.removeRole("userId","groupId","SF_mode");

4 - Groups​


La classe Groups contient les méthodes qui vous permettront de gérer les groupes d'utilisateurs.

Utilisation​

const groups = new Groups();

findById​

Trouve un groupe par son identifiant unique.

Paramètres​

NomTypeDescription
idstringIdentifiant du groupe

Retourne​

TypeDescription
promiseRetourne les données du groupe

Exemples​

let group = await groups.findById("groupId123");

find​

Trouve les groupes en fonction d'un critère de filtre.

Paramètres​

NomTypeDescription
criteriaobjectObjet de critères de recherche

Retourne​

TypeDescription
promiseRetourne un tableau de groupes

Exemples​

let list = await groups.find({ name: /admin/i });

count​

Compte le nombre de groupes correspondant aux critères.

Paramètres​

NomTypeDescription
criteriaobjectCritères de filtre

Retourne​

TypeDescription
promiseRetourne le nombre

Exemples​

let total = await groups.count({ type: "system" });

findAndCount​

Trouve les groupes et retourne à la fois les résultats et le nombre total.

Paramètres​

NomTypeDescription
bodyobjectCorps de requĂŞte avec filtres et pagination

Retourne​

TypeDescription
promiseRetourne un objet { data, count }

Exemples​

let result = await groups.findAndCount({ limit: 10, offset: 0 });

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés.

Paramètres​

NomTypeDescription
aggregationarrayTableau du pipeline d'agrégation

Retourne​

TypeDescription
promiseRetourne le résultat de l'agrégation

Exemples​

let aggregation = [
{ $match: { type: "system" } },
{ $group: { _id: "$status", total: { $sum: 1 } } }
];
let stats = await groups.aggregate(aggregation);

create​

Crée un nouveau groupe avec les données fournies.

Paramètres​

NomTypeDescription
bodyobjectDonnées du groupe

Retourne​

TypeDescription
promiseRetourne le groupe créé

Exemples​

let newGroup = await groups.create({ name: "Developers", type: "custom" });

update​

Met Ă  jour un groupe existant par identifiant.

Paramètres​

NomTypeDescription
idstringIdentifiant du groupe
bodyobjectCharge utile de mise Ă  jour

Retourne​

TypeDescription
promiseRetourne le groupe mis Ă  jour

Exemples​

let updated = await groups.update("groupId123", { name: "Admins Updated" });

delete​

Supprime un groupe par identifiant.

Paramètres​

NomTypeDescription
idstringIdentifiant du groupe

Retourne​

TypeDescription
promiseRetourne le résultat de suppression

Exemples​

await groups.delete("groupId123");

groupUsers​

Récupère les utilisateurs appartenant à un groupe spécifique.

Paramètres​

NomTypeDescription
idstringIdentifiant du groupe

Retourne​

TypeDescription
promiseRetourne un tableau d'utilisateurs dans le groupe

Exemples​

let users = await groups.groupUsers("groupId123");

5 - Collection​


La classe Collection contient les méthodes qui vous permettront de gérer votre collection

Utilisation​

Vous pouvez instancier une classe Collection avec l'identifiant ou le nom de la collection. Vous pouvez ajouter l'option mode

OptionDescription
idRequis. Identifiant ou nom de la collection
modeoptionnel. Spécifie le mode de la collection (par défaut : "test")
const collection = new Collection({ id: 'collectionId', mode: 'test' });

insert​

Permet d'insérer un json dans une collection

Paramètres​

NomTypeDescription
dataobjectJSON d'une valeur à insérer dans la collection.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await collection.insert({ name: "name1", type : "type1" });

insertMany​

Permet d'insérer un tableau de json dans une collection.

Paramètres​

NomTypeDescription
dataobjectJSON d'une valeur à insérer dans la collection.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await collection.insertMany([{label : "IT", value : "it"}]);

updateMany​

Met à jour tous les documents qui satisfont les critères de requête spécifiés.

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte.
dataobjectJSON de nouvelles données.
optionsobjectJSON d'options

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let criteria = {
firstName: new RegExp("p", "i")
}
await collection.updateMany(criteria, [{ type : "type2" }], { upsert: true });

update​

Permet de mettre Ă  jour un document dans la collection

Paramètres​

NomTypeDescription
idstringIdentifiant du document.
dataobjectJSON de nouvelles données.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await collection.update("documentId", { type : "type2" });

delete​

Permet de supprimer un document de la collection

Paramètres​

NomTypeDescription
idstringIdentifiant du document.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await collection.delete("documentId");

findById​

Permet d'obtenir un objet par identifiant depuis la collection

Paramètres​

NomTypeDescription
idstringIdentifiant du document.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let document = await collection.findById(id);

find​

Permet de sélectionner les documents dans une collection

Paramètres​

NomTypeDescription
bodyobjectJSON d'options.

Retourne​

TypeDescription
promiseRetourne une promesse

Options​

Ces options sont optionnelles

OptionDescription
criteriaSpécifie le filtre de sélection (par défaut : {})
limitNombre de documents retournés (par défaut : 100/ sans limite : 0)
pageNuméro de page dépend de la limite (par défaut : 0)
sortbyTrie les résultats par clé (par défaut : createdAt)
directionOrdre croissant (1) ou décroissant (-1) (par défaut : -1)

Exemples​

let body = {
criteria: {
name: new RegExp("p", "i"),
type: "type1"
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let documents = await collection.find(body);

count​

Permet d'obtenir le nombre de documents qui correspondraient Ă  une requĂŞte pour la collection

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let count = await collection.count({ type: "type1" });

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "type": "type1" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let documents = await collection.aggregate([aggregation]);

6 - SQLDatabase​


Gérez vos bases de données SQL externes via la classe SQLDatabase.

Utilisation​

Vous pouvez instancier une classe SQL avec l'identifiant et le mode (optionnel).

OptionDescription
idRequis. Identifiant ou nom de la base de données
modeoptionnel. Spécifie le mode de la base de données (par défaut : "test")
const sql = new SQLDatabase({ id: '610c0343f6ebc7ddcb49cc3b', mode: 'test' });

findOne​

Obtient les données d'une ligne de tableau

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
CriteriastringRequĂŞte de tableau.

Retourne​

TypeDescription
object

Exemples​

let res = await sql.findOne("client", "code='MMA'"))

find​

Liste plusieurs lignes d'un tableau SQL

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
optionsstringRequĂŞte de tableau.

Retourne​

TypeDescription
array

Exemples​

let res = sql.find("client", "code='MMA'")

count​

Obtient le nombre de lignes pour un tableau avec un critère

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
optionsstringRequĂŞte de tableau.

Retourne​

TypeDescription
arrayTableau avec un élément contenant le nombre

Exemples​

let count = await sql.count("client", "code='MMA'");

execute​

Exécute une requête personnalisée sur la base de données.

Paramètres​

NomTypeDescription
querystringChaîne de requête.

Retourne​

TypeDescription
arrayRetourne un tableau.

Exemples​

sql.execute("INSERT INTO client(code, intitule, representant, codepostal) VALUES('MDSX', 'holder', 'holder', 14000)")

insert​

Insère une ligne dans un tableau.

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
dataobjectCorps JSON.

Retourne​

TypeDescription
array

Exemples​

sql.insert("client", {
code: 'HelloWord',
codepostal: 14000
}

insertMany​

Insère plusieurs lignes dans un tableau

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
dataarrayCorps JSON.

Retourne​

TypeDescription
array

Exemples​

sql.insertMany("client", [
{ code: '#1' },
{ code: '#2' }
])

update​

Met Ă  jour les lignes.

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
querystringRequĂŞte de tableau.
dataobjectCorps JSON mis Ă  jour.

Retourne​

TypeDescription
object

Exemples​

 sql.update('client',   "code='MMA'",
{
code: "MQS"
})

delete​

Supprime une/des ligne(s) dans votre tableau.

Paramètres​

NomTypeDescription
tableNamestringNom du tableau.
querystringRequĂŞte de tableau.

Retourne​

TypeDescription
object

Exemples​

sql.delete("client", "id=223")

7 - SoftyTables​


La classe SoftyTables fournit des méthodes pour interagir avec les ressources SoftyTable, vous permettant d'effectuer des opérations CRUD, d'exécuter des requêtes et de gérer les données de tableau depuis l'interface web.

Utilisation​

Vous pouvez instancier une classe SoftyTables avec les options id et mode.

OptionDescription
idRequis. Identifiant de la SoftyTable
modeoptionnel. Spécifie le mode de SoftyTable (par défaut : "test")
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

findById​

Récupère une seule ligne d'une SoftyTable par son identifiant.

Paramètres​

NomTypeDescription
rowIdstringL'identifiant de la ligne

Retourne​

TypeDescription
promiseSe résout en données de la ligne

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let row = await softyTable.findById('12345');

find​

Liste les lignes d'une SoftyTable avec filtrage, tri et pagination optionnels.

Paramètres​

NomTypeDescription
bodyobjectJSON d'options (criteria, limit, page, sortby, direction)

Retourne​

TypeDescription
promiseSe résout en un tableau de lignes de tableau

Options​

Ces options sont optionnelles

OptionDescription
criteriaSpécifie le filtre de sélection avec clause where (par défaut : {})
limitNombre de lignes retournées (par défaut : 100/ sans limite : 0)
pageNuméro de page dépend de la limite (par défaut : 0)
sortbyTrie les résultats par nom de champ (par défaut : createdAt)
directionOrdre croissant (1) ou décroissant (-1) (par défaut : -1)

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Liste toutes les lignes
let rows = await softyTable.find({});

// Liste avec filtres et pagination
let body = {
criteria: {
where: { status: 'active' }
},
limit: 50,
page: 0,
sortby: 'createdAt',
direction: -1
}
let activeRows = await softyTable.find(body);

count​

Compte le nombre de lignes dans une SoftyTable avec filtrage optionnel.

Paramètres​

NomTypeDescription
criteriaobjectCritères de requête avec clause where optionnelle

Retourne​

TypeDescription
promiseSe résout en un objet avec propriété count

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Compte toutes les lignes
let result = await softyTable.count({});
// retourne: { count: 150 }

// Compte avec filtre
let result = await softyTable.count({
criteria: { where: { status: 'active' } }
});
// retourne: { count: 75 }

findAndCount​

Obtient à la fois une liste de lignes et le nombre total correspondant aux critères.

Paramètres​

NomTypeDescription
bodyobjectJSON d'options (criteria, limit, page, sortby, direction)

Retourne​

TypeDescription
promiseSe résout en objet { data, count }

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let body = {
criteria: {
where: { status: 'active' }
},
limit: 10,
page: 0,
sortby: 'createdAt',
direction: -1
}
let result = await softyTable.findAndCount(body);
let rows = result.data;
let count = result.count;

insert​

Crée une seule ligne dans une SoftyTable.

Paramètres​

NomTypeDescription
bodyobjectL'objet de données à insérer comme ligne

Retourne​

TypeDescription
promiseSe résout en données de la ligne créée

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let newRow = await softyTable.insert({
name: 'John Doe',
email: 'john@example.com',
age: 30,
status: 'active'
});

insertMany​

Crée plusieurs lignes dans une SoftyTable en une seule fois.

Paramètres​

NomTypeDescription
dataarrayTableau d'objets de données à insérer

Retourne​

TypeDescription
promiseSe résout en un tableau de lignes créées

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let newRows = await softyTable.insertMany([
{ name: 'John Doe', email: 'john@example.com', age: 30 },
{ name: 'Jane Smith', email: 'jane@example.com', age: 25 },
{ name: 'Bob Johnson', email: 'bob@example.com', age: 35 }
]);

update​

Met Ă  jour une seule ligne dans une SoftyTable par son identifiant.

Paramètres​

NomTypeDescription
rowIdstringL'identifiant de la ligne Ă  mettre Ă  jour
bodyobjectLes champs et valeurs Ă  mettre Ă  jour

Retourne​

TypeDescription
promiseSe résout en ligne mise à jour

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let updated = await softyTable.update('12345', {
status: 'inactive',
updatedAt: new Date()
});

updateMany​

Met à jour plusieurs lignes dans une SoftyTable qui correspondent à des critères spécifiques.

Paramètres​

NomTypeDescription
criteriaobjectCritères de requête avec clause where
valueobjectLes champs et valeurs Ă  mettre Ă  jour
optionsobjectOptions supplémentaires (optionnel)

Retourne​

TypeDescription
promiseSe résout en résultat de l'opération de mise à jour

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Met Ă  jour toutes les lignes oĂą le statut est 'pending'
let result = await softyTable.updateMany(
{ status: 'pending' },
{ status: 'active', processedAt: new Date() }
);

delete​

Supprime une seule ligne d'une SoftyTable par son identifiant.

Paramètres​

NomTypeDescription
rowIdstringL'identifiant de la ligne

Retourne​

TypeDescription
promiseSe résout en résultat de suppression

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

await softyTable.delete('12345');

deleteMany​

Supprime plusieurs lignes d'une SoftyTable qui correspondent à des critères spécifiques.

Paramètres​

NomTypeDescription
criteriaobjectCritères de requête avec clause where

Retourne​

TypeDescription
promiseSe résout en résultat de suppression

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Supprime toutes les lignes inactives
await softyTable.deleteMany({ status: 'inactive' });

// Supprime les lignes plus anciennes qu'une certaine date
await softyTable.deleteMany({
createdAt: { $lt: new Date('2024-01-01') }
});

clear​

Efface toutes les lignes d'une SoftyTable (supprime toutes les données).

Retourne​

TypeDescription
promiseSe résout en résultat de suppression

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Supprime toutes les lignes du tableau
await softyTable.clear();

getOptions​

Récupère les options pour les champs de sélection dans une SoftyTable.

Retourne​

TypeDescription
promiseSe résout en tableau d'options

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let options = await softyTable.getOptions();
// retourne: [{ label: 'Active', value: 'active' }, { label: 'Inactive', value: 'inactive' }]

execute​

Exécute une requête SQL personnalisée sur la SoftyTable.

Paramètres​

NomTypeDescription
querystringLa requête SQL à exécuter
optionsobjectOptions de requĂŞte avec replacements et type

Objet Options​

ChampTypeDescription
replacementsobjectValeurs à remplacer dans les requêtes paramétrées
typestringType de requĂŞte: 'SELECT', 'INSERT', 'UPDATE', 'DELETE', 'RAW', 'SHOWTABLES'

Retourne​

TypeDescription
promiseSe résout en résultats de la requête

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

// Exécute une requête SELECT
let results = await softyTable.execute(
'SELECT * FROM my_table WHERE status = :status',
{
replacements: { status: 'active' },
type: 'SELECT'
}
);

// Exécute une requête personnalisée
let results = await softyTable.execute(
'UPDATE my_table SET status = "processed" WHERE created_at < NOW() - INTERVAL 30 DAY',
{ type: 'UPDATE' }
);

migrate​

Migre les lignes dans une SoftyTable (pour les opérations de migration de données).

Retourne​

TypeDescription
promiseSe résout en résultat de migration

Exemples​

const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});

let result = await softyTable.migrate();

8 - CustomList​


La classe CustomList contient les méthodes qui vous permettront de gérer votre liste personnalisée

Utilisation​

Vous pouvez instancier une classe CustomList avec l'identifiant de la liste personnalisée. Vous pouvez ajouter d'autres options (mode, versionId)

OptionDescription
idRequis. Identifiant de la liste personnalisée
modeoptionnel. Spécifie le mode de la liste personnalisée (par défaut : "test")
versionIdoptionnel. Identifiant de la version depuis laquelle obtenir la liste personnalisée
const customList = new CustomList({id: 'id', mode: 'test', versionId: "vId"});

get​

Obtient les données d'une liste personnalisée

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let customListData = await customList.get();

9 - Report​


La classe Report vous permettra de manipuler un rapport spécifique

Utilisation​

Vous pouvez instancier une classe Report avec l'identifiant du rapport. Vous pouvez ajouter l'option mode

OptionDescription
idRequis. Spécifie le mode de la liste personnalisée (par défaut : "test")
modeoptionnel. Spécifie le mode de la liste personnalisée (par défaut : "test")
const report = new Report({id: 'id', mode: 'test'});

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "SF_status": "Running" }
},
{
"$sort": { "SF_createdAt": -1 }
}
]
let instances = await report.aggregate(aggregation); //rapport des instances

10 - Instance​


La classe Instance contient les méthodes qui vous permettront de gérer les instances

Utilisation​

const inctance = new Instance();

findById​

Obtient une instance par identifiant

Paramètres​

NomTypeDescription
idstringIdentifiant de l'instance.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let oneInctance = await inctance.findById(id);

find​

Liste les instances

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let instances = await inctance.find({ status: "Running" });

count​

Permet d'obtenir le nombre d'instances qui correspondraient Ă  une requĂŞte

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let count = await inctance.count({ status: "Running" });

findAndCount​

Obtient une liste et le nombre d'instances

Paramètres​

NomTypeDescription
bodyobjectJSON d'options.

Retourne​

TypeDescription
promiseRetourne une promesse

Options​

Ces options sont optionnelles

OptionDescription
criteriaSpécifie le filtre de sélection (par défaut : {})
fieldsSélectionne des champs spécifiques (exemple: "createdAt name status")
limitNombre d'instances retournées (par défaut : 100/ sans limite : 0)
pageNuméro de page dépend de la limite (par défaut : 0)
sortbyTrie les résultats par clé (par défaut : createdAt)
directionOrdre croissant (1) ou décroissant (-1) (par défaut : -1)

Exemples​

let body = {
criteria: {
status: "Running"
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await inctance.findAndCount(body);
let instances = res.data;
let count = res.count;

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "status": "End" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let inctances = await inctance.aggregate([aggregation]);

update​

Met Ă  jour une instance

Paramètres​

NomTypeDescription
idstringIdentifiant de l'instance.
dataobjectJSON de nouvelles données.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await inctance.update(id, { status : "End" });

delete​

Supprime une instance

Paramètres​

NomTypeDescription
idstringIdentifiant de l'instance.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await inctance.delete(id);

history​

Obtient l'historique de l'instance.

Paramètres​

NomTypeDescription
idstringIdentifiant de l'instance.
dataobjectJSON de données.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await inctance.history(id, { status : "End" });

11 - Task​


La classe Task contient les méthodes qui vous permettront de gérer les tâches

Utilisation​

const task = new Task();

findById​

Obtient une tâche par identifiant

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let oneTask = await task.findById(id);

find​

Liste les tâches

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let tasks = await task.find({ instanceId: "instanceId" });

count​

Permet d'obtenir le nombre de tâches qui correspondraient à une requête

Paramètres​

NomTypeDescription
criteriaobjectJSON de requĂŞte

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let count = await task.count({ instanceId: "instanceId" });

findAndCount​

Obtient une liste et le nombre de tâches

Paramètres​

NomTypeDescription
bodyobjectJSON d'options.

Retourne​

TypeDescription
promiseRetourne une promesse

Options​

Ces options sont optionnelles

OptionDescription
criteriaSpécifie le filtre de sélection (par défaut : {})
assignedToConnectedPour obtenir les tâches de l'utilisateur connecté (par défaut : false)
fieldsSélectionne des champs spécifiques (exemple: "createdAt name status")
limitNombre d'instances retournées (par défaut : 100/ sans limite : 0)
pageNuméro de page dépend de la limite (par défaut : 0)
sortbyTrie les résultats par clé (par défaut : createdAt)
directionOrdre croissant (1) ou décroissant (-1) (par défaut : -1)

Exemples​

let body = {
criteria: {
status: "Running"
},
assignedToConnected: true,
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await task.findAndCount(body);
let tasks = res.data;
let count = res.count;

aggregate​

Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés

Paramètres​

NomTypeDescription
aggregationarrayTableau d'agrégation

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let aggregation = [
{
"$match": { "status": "End" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let tasks = await task.aggregate([aggregation]);

update​

Met à jour une tâche

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche.
dataobjectJSON de nouvelles données.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await task.update(id, { status : "End" });

delete​

Supprime une tâche

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await task.delete(id);

getNextValue​

Obtient la valeur suivante d'une tâche.

Paramètres​

NomTypeDescription
namestringNom de la variable.
[padding]numberRemplissage du résultat avec 000000.
modestringMode de l'utilisateur en cours d'exécution.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await task.getNextValue("name",5,"SF_mode");

history​

Obtient l'historique d'une tâche par son identifiant.

Paramètres​

NomTypeDescription
idstringIdentifiant de la tâche
bodyobjectParamètres de requête (optionnel)

Retourne​

TypeDescription
promiseRetourne un objet { data, count }

Exemples​

let log = await task.history("taskId123", {});

12 - Api​


La classe Api contient les méthodes qui vous permettront de gérer vos Apis.

Utilisation​

const api = new Api();

invoke​

Invoque une API.

Paramètres​

NomTypeDescription
bodyobjectJSON d'options.

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

let body = {
const myElement = document.getElementById("demo");

function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
myElement.innerHTML = "Geolocation is not supported by this browser.";
}
}

function showPosition(position) {
myElement.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
}
await api.invoke(body);

13 - Email​


La classe Email contient les méthodes qui vous permettront de gérer vos emails.

Utilisation​

const email = new Email();

send​

Envoie un email.

Paramètres​

NomTypeDescription
assigneestringEmail de l'utilisateur destinataire.
subjectstringSujet de l'email.
variablesobjectJSON d'options.
mailTemplateobjectModèle d'email.
mailProviderobjectFournisseur par défaut Softyflow.
ccstringJSON d'options.
fromstringEmail de l'utilisateur expéditeur.
replyTostring*

Retourne​

TypeDescription
promiseRetourne une promesse

Exemples​

await email.send("assignee","subject",{"var1", "var2"},{"mailTemplate"},{"mailProvider"},"mail of user in cc", "senderMail","replyTo");

14 - DataSource​


La classe DataSource fournit des méthodes génériques de manipulation de données pour diverses sources telles que les collections, les tableaux ou les rapports.

Utilisation​

const ds = new DataSource();

findOne​

Récupère un seul document d'une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectOptions de requĂŞte

Retourne​

TypeDescription
promiseRetourne un seul document

Exemples​

let doc = await ds.findOne("users", { filter: { email: "user@example.com" } });

list​

Liste plusieurs documents d'une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectOptions de requĂŞte

Retourne​

TypeDescription
promiseRetourne un tableau de documents

Exemples​

let docs = await ds.list("users", { filter: { active: true } });

count​

Compte le nombre de documents dans une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectOptions de requĂŞte

Retourne​

TypeDescription
promiseRetourne le nombre de documents

Exemples​

let total = await ds.count("orders", { filter: { status: "delivered" } });

update​

Met à jour des documents dans une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectConditions de requĂŞte
dataobjectDonnées à mettre à jour

Retourne​

TypeDescription
promiseRetourne le résultat de mise à jour

Exemples​

await ds.update("products", { filter: { stock: 0 } }, { restock: true });

insert​

Insère un seul document dans une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
dataobjectDocument à insérer
optionsobjectOptions supplémentaires

Retourne​

TypeDescription
promiseRetourne le résultat d'insertion

Exemples​

await ds.insert("logs", { action: "login", userId: "abc123" });

insertMany​

Insère plusieurs documents dans une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
dataarrayTableau de documents
optionsobjectOptions supplémentaires

Retourne​

TypeDescription
promiseRetourne le résultat d'insertion

Exemples​

await ds.insertMany("logs", [{ action: "view" }, { action: "edit" }]);

delete​

Supprime des documents d'une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectCritères de suppression

Retourne​

TypeDescription
promiseRetourne le résultat de suppression

Exemples​

await ds.delete("sessions", { filter: { expired: true } });

execute​

Exécute une action ou commande personnalisée sur une source de données.

Paramètres​

NomTypeDescription
sourcestringNom de la source
optionsobjectParamètres d'exécution

Retourne​

TypeDescription
promiseRetourne le résultat d'exécution

Exemples​

await ds.execute("jobs", { action: "resetAll" });

15 - File​

La classe File fournit des méthodes pour générer des fichiers PDF à partir de modèles HTML stockés et de contextes de variables en utilisant des endpoints API.


generatePDF​

Génère un fichier PDF en récupérant le contenu HTML d'un fichier et en le publiant avec des données contextuelles.

Paramètres​

NomTypeDescription
filenamestring- Nom souhaité pour le PDF généré
fidstring- Identifiant du fichier depuis lequel récupérer le contenu
contextobject- Données contextuelles pour le rendu PDF (par exemple, variables)

Retourne​

TypeDescription
Promise- Se résout avec la réponse de génération du PDF

Example​

const file = new File();
file.generatePDF("output.pdf", "605c72...", { variables: { user: "Alice" } });

genratePDFWithVar​

Génère du contenu PDF en utilisant des variables directement en publiant vers un endpoint de génération de contenu spécifique.

Paramètres​

NomTypeDescription
namestring- Nom pour la sortie (non utilisé directement dans l'appel)
fidstring- Identifiant du fichier du modèle
contextobject- Données de variables utilisées pour le rendu du modèle

Retourne​

TypeDescription
Promise- Se résout avec la réponse du serveur

Example​

const file = new File();
file.genratePDFWithVar("Invoice", "605c72...", { variables: { amount: 100, user: "Alice" } });