Read
Entités autres que Project
Deux fonctions sont disponibles pour récupérer une entitié : findAll et get.
- findAll retourne un tableau d'entitĂ©s ; ce tableau peut ĂȘtre vide si aucune correspondance n'existe.
- get retourne une entitĂ© ; cette entitĂ© peut ĂȘtre nulle si aucune correspondance n'existe.
Ces deux fonctions effectuent leur recherche sur l'entité parente passée en paramÚtre.
Des variantes de ces deux fonctions sont également disponibles : findAllOrCreate, getOrCreate.
findAll
La fonction findAll récupÚre un tableau d'entités.
Signature : <S,T>(parentEntity: S, args?: { filter?: (val: T) => boolean; sort?: [string, 1 | -1][] }) => T[]
Filtre
La fonction findAll permet de filtrer les résultats.
Le type du paramÚtre filter est (val: T) => boolean ; un prédicat.
Entities('Email').findAll(
company,
{ filter: ({ value }) => value === '[email protected]' }
);
// Le résultat est un tableau filtré
// contenant uniquement des éléments
// dont la propriété 'value' est égale à '[email protected]'Tri
La fonction findAll permet de trier les résultats.
Le type du paramÚtre sort est [string, 1 | -1][] ; un tableau de tuples. La premiÚre valeur d'un tuple est le nom d'une propriété de l'objet à trier, et la seconde valeur est un entier indiquant si le tri est ascendant (1) ou descendant (-1). L'ordre du tableau sort définit l'ordre de tri.
Entities('Email').findAll(
company,
{ sort: [['type', -1], ['value', 1]]}
);
// Le résultat est un tableau trié
// d'abord par la propriété 'type' (descendant)
// puis par la propriété 'value' (ascendant)findAllOrCreate
La fonction findAllOrCreate récupÚre un tableau d'entités. Si aucune correspondance n'est trouvée, findAllOrCreate crée une nouvelle entité et retourne un tableau la contenant.
Signature : <S,T>(parentEntity: S, args?: { filter?: (val: T) => boolean; sort?: [string, 1 | -1][] }) => T[]
Filtre
Voir la section filtre ci-dessus de la fonction findAll.
Tri
Voir la secion tri ci-dessus de la fonction findAll.
get
La fonction get récupÚre une entité. Si plusieurs entités correspondent (e.g. l'entité Project possÚde plusieurs entités Company), la premiÚre est retournée. Si aucune entité ne correspond, la valeur null est retournée.
Signature : <S,T>(parentEntity: S, args?: { filter?: Record<string, unknown> }) => T | null
Filtre
Voir la section filtre ci-dessus de la fonction findAll.
getOrCreate
La fonction getOrCreate récupÚre une entité. Si aucune correspondance n'est trouvée, getOrCreate crée une nouvelle entité et la retourne.
Signature : <S,T>(parentEntity: S, args?: { filter?: Record<string, unknown> }) => T
Filtre
Voir la section filtre ci-dessus de la fonction get.
Path
La fonction Entities accepte en paramÚtre un path pour récupérer facilement une ou plusieurs entités imbriquées.
Le path est divisé en segments dont chacun représente une entité.
Le path doit respecter les rĂšgles :
- Les segments sont séparés par le caractÚre ..
- La résolution d'un segment doit correspondre à exactement une entité. La seule exception est le dernier segment.
- Le critĂšre pour sĂ©lectionner une entitĂ© parmi plusieurs est spĂ©cifiĂ© entre crochets, et doit respecter la syntaxe: [PROPERTY_NAME=VALUE], oĂč PROPERTY_NAME est le nom d'une des propriĂ©tĂ©s de l'entitĂ©.
// Exemple 1
// A partir de l'entité `project`
// récupération d'une entité `Contact`
// dont la propriété `isRecipient` est `false`
await Entities('Contact[isRecipient=false]').get(project);
// Exemple 2
// A partir de l'entité `project`
// récupération de toutes les entités `Contact`
// dont la propriété `isRecipient` est `false`
await Entities('Contact[isRecipient=false]').findAll(project);
// Exemple 3
// A partir de l'entité `project`
// récupération de toutes les entités `BankAccount`
// dont la propriété `type` est `VIREMENT`
// et qui sont rattachés à la deuxiÚme entité `Contact`
await Entities('Contact[1].BankAccount[type=VIREMENT]').findAll(project);Le path donnĂ© Ă la fonction Entities doit ĂȘtre relatif Ă l'entitĂ© passĂ©e Ă la fonction de rĂ©cupĂ©ration (findAll, findAllOrCreate, get, ou getOrCreate).
Entité Project
get
La fonction get récupÚre une entité Project.
Signature : <T>(args: { externalId?: string; id?: string; signature?: { signatureId: string; status?: string } }) => Promise<T | null>
// Récupération via `externalId`
await Entities('Project').get({ externalId: '1234' });
// Récupération via `id`
await Entities('Project').get({ id: '1234' });
// Récupération via `status` et `signatureId`
await Entities('Project').get({ signature: { signatureId: '1', status: 'CREATED' }});findAll
La fonction findAll récupÚre une liste d'entités Project.
Signature : <T>(status: string | string[], args?: { signatureMode?: string }) => Promise<T[]>
// Récupération via `status`
await Entities('Project').findAll('CREATED');
// Récupération via `status`
await Entities('Project').findAll(['CREATED', 'DELETED']);
// Récupération via `status` et `signatureMode`
await Entities('Project').findAll('CREATED', { signatureMode: 'ELECTRONIC' });