feat(backend): add responsable stock endpoint
This commit is contained in:
@@ -6,11 +6,13 @@ import {
|
||||
countNotificationsNonLues,
|
||||
findActiviteRecente,
|
||||
findEmpruntsResponsable,
|
||||
findMaterielsResponsable,
|
||||
StatutCount,
|
||||
ActiviteResponsable,
|
||||
EmpruntResponsable,
|
||||
MaterielResponsable,
|
||||
} from '../repositories/responsable.repository';
|
||||
import { STATUT_EMPRUNT, StatutEmprunt } from '../models/enums';
|
||||
import { STATUT_EMPRUNT, STATUT_MATERIEL, StatutEmprunt, StatutMateriel } from '../models/enums';
|
||||
|
||||
export interface DashboardResponsableData {
|
||||
materiels: StatutCount[];
|
||||
@@ -24,6 +26,12 @@ export interface ListerEmpruntsResponsableFiltres {
|
||||
statut?: StatutEmprunt;
|
||||
}
|
||||
|
||||
export interface ListerMaterielsResponsableFiltres {
|
||||
statut?: StatutMateriel;
|
||||
categorieId?: number;
|
||||
recherche?: string;
|
||||
}
|
||||
|
||||
function verifierResponsable(roleCode: string): void {
|
||||
if (roleCode !== 'RESPONSABLE') {
|
||||
throw new AppError(403, 'Acces reserve au responsable materiel');
|
||||
@@ -65,6 +73,29 @@ export function parseStatutEmprunt(value: unknown): StatutEmprunt | undefined {
|
||||
return value as StatutEmprunt;
|
||||
}
|
||||
|
||||
export function parseStatutMateriel(value: unknown): StatutMateriel | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (typeof value !== 'string' || !(STATUT_MATERIEL as readonly string[]).includes(value)) {
|
||||
throw new AppError(400, 'statut invalide');
|
||||
}
|
||||
return value as StatutMateriel;
|
||||
}
|
||||
|
||||
export function parseCategorieId(value: unknown): number | undefined {
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const parsed = Number(value);
|
||||
if (!Number.isInteger(parsed) || parsed <= 0) {
|
||||
throw new AppError(400, 'categorieId invalide');
|
||||
}
|
||||
|
||||
return parsed;
|
||||
}
|
||||
|
||||
export function listerEmpruntsResponsable(
|
||||
roleCode: string,
|
||||
campusId: number,
|
||||
@@ -73,3 +104,12 @@ export function listerEmpruntsResponsable(
|
||||
verifierResponsable(roleCode);
|
||||
return findEmpruntsResponsable(campusId, filtres);
|
||||
}
|
||||
|
||||
export function listerMaterielsResponsable(
|
||||
roleCode: string,
|
||||
campusId: number,
|
||||
filtres: ListerMaterielsResponsableFiltres,
|
||||
): Promise<MaterielResponsable[]> {
|
||||
verifierResponsable(roleCode);
|
||||
return findMaterielsResponsable(campusId, filtres);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user