Comment utiliser les entités ?
2 min
Ce code illustre comment interagir avec différentes entités au sein d'un projet en utilisant le module Entities . Il montre comment créer un nouveau projet, récupérer et modifier les entités client et entreprise, sauvegarder et récupérer des données à partir de ces entités, ajouter des entités à un tableau, filtrer et supprimer des entités du tableau.
Breaking change à partir de la version 2.3.0 : findAll pour les entités de type tableau prend en paramètre { query, sort, page, pageSize }
L'entité Project :
import { Entities } from '@fasstech/oip-core';
import {
projectStatusEnum,
getProjectName,
setProjectStatus,
setProjectName,
} from '@fasstech/oip-core/entities';
// créer un nouveau projet
const project = await Entities('Project').create();
// récupérer un projet existant par `id` ou `externalId`
const project = await Entities('Project').get({ id: 'my-project-id' });
// -- mettre à jour un projet --
let project = await Entities('Project').get({ id: 'my-project-id' });
// mettre à jour une propriété d'un projet grâce au setter correspondant
setProjectName('Magic Project', project);
// mettre à jour le status du projet
setProjectStatus(projectStatusEnum.IN_PROGRESS, project);
// sauvegarder la mise à jour du projet
project = await Entities('Project').save(project);
// -- utiliser les getters pour récupérer la valeur d'une propriété --
const projectName = getProjectName(project);Toutes les autres entités dépendent de l'entité Projet, il faut d'abord récupérer ou créer l'entité Projet :
import { Entities } from '@fasstech/oip-core';
import { setCustomerFirstName, getCustomerFirstName, setCompanyName, getCompanyName } from '@fasstech/oip-core/entities';
const projectEntity = Entities('Project');
// On crée un nouveau projet
let project = await projectEntity.create();
// On peut ensuite interagir avec les entités rattachées à l'entité project
let customer = await Entities('Customer').get(project);
// On utilise ensuite les getters et setters de l'entité customer
setCustomerFirstName('John', customer)
// On ajoute les données de l'entité customer à l'entité projet
project = await Entities('Customer').save(project, customer);
// Pour récupérer la donnée de l'entité customer, on utilise le getter correspondant
const firstName = getCustomerFirstName(customer); // John
// Pour persister l'ensemble des données du projet, il faut enregistrer celui-ci
await Entities('Project').save(project);
// Ajouter une entité dans un tableau d'entités
let company = await Entities('Company').create();
// On ajoute une valeur à l'entité company
setCompanyName('Fasst', company);
// On ajoute les données de l'entité company à l'entité projet
project = await Entities('Company').save(project, company);
// Retrouver une entité d'un tableau d'entités par filtre
let company2 = await Entities('Company').findAll(project, {
name: 'Fasst'
});
// Supprimer une entité d'un tableau d'entités
project = await Entities('Company').delete(project, company2);