Introduction
L'entité Project, en tant que racine de l'arbre des entités, est un cas particulier.
CRUD
Les opérations de manipulation create, read, update, et delete ont un comportement différent selon l'entité à laquelle elles sont appliquées. Ces différences sont présentées dans les pages dédiées à ces quatre opérations.
Autres opérations
L'entité Project, en tant que racine de l'arbre des entités, possÚde des opérations spécifiques.
Duplicate
L'entité Project offre une fonction duplicate pour créer une nouvelle entité Project à partir d'une existante. Un nouvel arbre d'entités est ainsi créé et chacune des nouvelles entités créées aura un identifiant unique.
Signature : <T>({ id: string }) => Promise<{ T | null }>
const duplicate = await Entities('Project').duplicate({ id });Exist
L'entité Project offre une fonction exist pour déterminer l'existence d'un projet.
Signature : (args: { companySiret?: unknown; projectId?: unknown; userNetwork?: unknown }) => Promise<boolean>
const exist = await Entities('Project').exist({
companySiret: '1234',
projectId: { $ne: '1' },
userNetwork: { $ne: 'network' }
});Purge
L'entité Project offre une fonction purge pour supprimer des propriétés dans l'arbre des entités.
Signature : <T>(project: T, options: object) => Promise<T>
await Entities('Project').purge(project, {
Project: {
Offer: {
delete: ['price'],
Pack: {
keep: ['externalId']
}
}
}
});Options
La configuration de la purge à réaliser se fait via l'objet options :
- La structure de l'arbre des entitĂ©s doit ĂȘtre respectĂ©e ; options est ainsi de la forme : { Project: { [...] } }.
- Les clés autorisées sont de deux types :
- Le nom d'une entitĂ© (la casse doit ĂȘtre respectĂ©e).
- Le littéral keep ou delete ; keep définit la liste des propriétés d'une entité à conserver et à l'inverse delete définit la liste des propriétés d'une entité à ne pas conserver.
Si à la fois les clés keep et delete sont spécifiées pour une entité alors seule la clé keep est utilisée.
Pour toutes les entitĂ©s, certaines propriĂ©tĂ©s ne peuvent ĂȘtre supprimĂ©es : id, createdAt, updatedAt.
Pour l'entitĂ©s Project, les propriĂ©tĂ©s status et statusHistory ne peuvent Ă©galement pas ĂȘtre supprimĂ©es.
Hooks On Save
Deux hooks peuvent ĂȘtre rattachĂ©s Ă la sauvegarde de l'entitĂ© Project. Le premier s'exĂ©cute avant la sauvegarde de la nouvelle entitĂ© Project. Le second s'exĂ©cute aprĂšs la sauvegarde de la nouvelle entitĂ© Project.