- Renommage questionnaire.nom → questionnaire.titre dans QuestionnaireReponse.tsx, AdminQuestionnaireEdit.tsx, questionnaireScheduler.ts, questionnaireExport.ts - Correction des requêtes SQL dans questionnaireDb.ts (suppression de la condition complete inexistante) - Ajout des colonnes valeurMin et valeurMax dans la table questions - Renommage de la colonne nom en titre dans la table questionnaires
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import QRCode from "qrcode";
|
|
import { randomBytes } from "crypto";
|
|
import { getParametres } from "./parametresDb";
|
|
|
|
/**
|
|
* Générer un token unique pour le QR code
|
|
*/
|
|
export function generateQRToken(): string {
|
|
return randomBytes(32).toString("hex");
|
|
}
|
|
|
|
/**
|
|
* Générer un QR code en base64 à partir d'un token
|
|
* @param token Le token unique de la séquence
|
|
* @returns Une image QR code en base64 (data URL)
|
|
*/
|
|
export async function generateQRCodeDataURL(token: string): Promise<string> {
|
|
// URL complète pour scanner le QR code
|
|
const parametres = await getParametres();
|
|
const url = `${parametres.urlPublique}/emargement/${token}`;
|
|
|
|
try {
|
|
const qrCodeDataURL = await QRCode.toDataURL(url, {
|
|
errorCorrectionLevel: "H",
|
|
type: "image/png",
|
|
width: 400,
|
|
margin: 2,
|
|
color: {
|
|
dark: "#000000",
|
|
light: "#FFFFFF",
|
|
},
|
|
});
|
|
|
|
return qrCodeDataURL;
|
|
} catch (error) {
|
|
console.error("Erreur lors de la génération du QR code:", error);
|
|
throw new Error("Impossible de générer le QR code");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Générer un QR code en buffer PNG
|
|
* @param token Le token unique de la séquence
|
|
* @returns Un buffer PNG du QR code
|
|
*/
|
|
export async function generateQRCodeBuffer(token: string): Promise<Buffer> {
|
|
const parametres = await getParametres();
|
|
const url = `${parametres.urlPublique}/emargement/${token}`;
|
|
|
|
try {
|
|
const buffer = await QRCode.toBuffer(url, {
|
|
errorCorrectionLevel: "H",
|
|
type: "png",
|
|
width: 400,
|
|
margin: 2,
|
|
});
|
|
|
|
return buffer;
|
|
} catch (error) {
|
|
console.error("Erreur lors de la génération du QR code:", error);
|
|
throw new Error("Impossible de générer le QR code");
|
|
}
|
|
}
|