feat(auth): add profile and QR card identification endpoints

This commit is contained in:
SaidSoighiri94
2026-06-22 10:13:45 +02:00
parent 20490a05c5
commit b5a7577e8d
7 changed files with 106 additions and 5 deletions
@@ -0,0 +1,31 @@
import { AppError } from '../errors/app-error';
import { findById, UtilisateurProfil } from '../repositories/utilisateur.repository';
import { findByQrCode } from '../repositories/carte-etudiante.repository';
export async function getProfil(utilisateurId: number): Promise<UtilisateurProfil> {
const profil = await findById(utilisateurId);
if (!profil) {
throw new AppError(404, 'Utilisateur introuvable');
}
return profil;
}
/* RG02 : identification de l'étudiant par le QR code de sa carte. La carte doit
exister, être active et non expirée, et le compte doit être actif. */
export async function identifierParCarte(qrCode: string): Promise<UtilisateurProfil> {
const carte = await findByQrCode(qrCode);
if (!carte || !carte.actif) {
throw new AppError(404, 'Carte non reconnue');
}
if (carte.dateExpiration.getTime() < Date.now()) {
throw new AppError(401, 'Carte expiree');
}
if (!carte.utilisateur.actif) {
throw new AppError(401, 'Compte inactif');
}
return carte.utilisateur;
}