Rollback to eebcb648
This commit is contained in:
63
deployment-package/source_server/qrCodeGenerator.ts
Normal file
63
deployment-package/source_server/qrCodeGenerator.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user