La méthode findAll
6 min
Changelog
Les fonctionnalités de tri et de pagination sont disponibles à partir de la version 2.3.0.
Description
const findAll: <E extends { id: string }>(args: {
query?: Record<string, unknown>;
sort?: Record<string, 'asc' | 'ascending' | 1 | 'desc' | 'descending' | -1>;
page?: number;
pageSize?: number;
}) => E[] | { documents: E[]; page: number; pageSize: number; count: number; nbPages: number };La fonction findAll permet de récupérer une liste d'entités de type tableau.
La fonction findAll est uniquement disponible pour les entités de type tableau.
La fonction findAll prend en paramètre :
- query : objet permettant d'appliquer un filtrage.
- sort: objet permettant d'appliquer un tri.
- page : index de la page à récupérer ; le premier index est 0.
- pageSize : nombre d'éléments dans une page.
Pour la pagination, les deux paramètres page et pageSize sont requis.
La fonction findAll retourne une liste d'entités filtrées et triées. Dans le cas d'une pagination, le résultat de cette fonction est un objet :
- documents : liste d'entités filtrées et triées.
- page : index de la page demandée.
- pageSize : nombre d'éléments dans une page.
- count : nombre total d'éléments correspondant à la requête.
- nbPages : nombre total de pages correspondant à la requête.
Exemples
import { Entities } from '@fasstech/oip-core';
// Liste d'entités Project
await Entities('Project').findAll({});
// Liste paginée d'entités Project
await Entities('Project').findAll({ page: 0, pageSize: 5 });
// Liste filtrée, triée et paginée d'entités Project
await Entities('Project').findAll({
query: { status: 'IN_PROGRESS' },
sort: { createdAt: 'desc', name: 'asc' },
page: 0,
pageSize: 5
});
// Liste d'entités Offer
await Entities('Offer').findAll(project, {});
// Liste paginée d'entités Offer
await Entities('Offer').findAll(project, { page: 0, pageSize: 5 });
// Liste filtrée, triée et paginée d'entités Offer
await Entities('Offer').findAll(project, {
query: { type: 'HEALTH' },
sort: { price: -1, name: 'asc' },
page: 2,
pageSize: 8
});Cas particuliers
Entité StatusHistory
La fonction findAll pour l'entité StatusHistory autorise uniquement le filtrage. Elle a ainsi une syntaxe différente.
await Entities('StatusHistory').findAll(project, { status: 'IN_PROGRESS' });