feat(responsable): improve loan supervision table
This commit is contained in:
@@ -45,8 +45,22 @@ export interface DashboardResponsableData {
|
||||
|
||||
export interface ListerEmpruntsResponsableFiltres {
|
||||
statut?: StatutEmprunt;
|
||||
annee?: number;
|
||||
recherche?: string;
|
||||
tri?: TriEmpruntResponsable;
|
||||
ordre?: OrdreTri;
|
||||
}
|
||||
|
||||
export type TriEmpruntResponsable =
|
||||
| 'dateEmprunt'
|
||||
| 'dateRetourPrevue'
|
||||
| 'dateRetourReelle'
|
||||
| 'materiel'
|
||||
| 'etudiant'
|
||||
| 'statut';
|
||||
|
||||
export type OrdreTri = 'asc' | 'desc';
|
||||
|
||||
export interface ListerMaterielsResponsableFiltres {
|
||||
statut?: StatutMateriel;
|
||||
categorieId?: number;
|
||||
@@ -139,6 +153,49 @@ export function parseStatutEmprunt(value: unknown): StatutEmprunt | undefined {
|
||||
return value as StatutEmprunt;
|
||||
}
|
||||
|
||||
export function parseAnneeEmprunt(value: unknown): number | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (typeof value !== 'string') {
|
||||
throw new AppError(400, 'annee invalide');
|
||||
}
|
||||
|
||||
const annee = Number(value);
|
||||
if (!Number.isInteger(annee) || annee < 2000 || annee > 2100) {
|
||||
throw new AppError(400, 'annee invalide');
|
||||
}
|
||||
return annee;
|
||||
}
|
||||
|
||||
export function parseTriEmprunt(value: unknown): TriEmpruntResponsable | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
const valeurs: readonly TriEmpruntResponsable[] = [
|
||||
'dateEmprunt',
|
||||
'dateRetourPrevue',
|
||||
'dateRetourReelle',
|
||||
'materiel',
|
||||
'etudiant',
|
||||
'statut',
|
||||
];
|
||||
if (typeof value !== 'string' || !valeurs.includes(value as TriEmpruntResponsable)) {
|
||||
throw new AppError(400, 'tri invalide');
|
||||
}
|
||||
return value as TriEmpruntResponsable;
|
||||
}
|
||||
|
||||
export function parseOrdreTri(value: unknown): OrdreTri | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (value !== 'asc' && value !== 'desc') {
|
||||
throw new AppError(400, 'ordre invalide');
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
export function parseStatutMateriel(value: unknown): StatutMateriel | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user