This commit is contained in:
nBiqoz
2025-09-07 13:36:00 +02:00
parent 88a94c46fe
commit f3c2cb6ff5

View File

@@ -174,8 +174,7 @@ export async function POST(req: NextRequest) {
console.log("🔍 Appel à Presidio Analyzer..."); console.log("🔍 Appel à Presidio Analyzer...");
// ✅ Définir l'URL AVANT de l'utiliser // ✅ Définir l'URL AVANT de l'utiliser
const presidioAnalyzerUrl = const presidioAnalyzerUrl = "http://localhost:5001/analyze";
"http://analyzer.151.80.20.211.sslip.io/analyze";
try { try {
const analyzeResponse = await fetch(presidioAnalyzerUrl, { const analyzeResponse = await fetch(presidioAnalyzerUrl, {
@@ -212,8 +211,7 @@ export async function POST(req: NextRequest) {
}; };
console.log("🔍 Appel à Presidio Anonymizer..."); console.log("🔍 Appel à Presidio Anonymizer...");
const presidioAnonymizerUrl = const presidioAnonymizerUrl = "http://localhost:5001/anonymize";
"http://analyzer.151.80.20.211.sslip.io/anonymize";
const anonymizeResponse = await fetch(presidioAnonymizerUrl, { const anonymizeResponse = await fetch(presidioAnonymizerUrl, {
method: "POST", method: "POST",
@@ -252,45 +250,46 @@ export async function POST(req: NextRequest) {
) => { ) => {
const replacementMap: Record<string, string> = {}; const replacementMap: Record<string, string> = {};
// Créer une copie du texte anonymisé pour le traitement // Approche simple : comparer caractère par caractère
const workingText = anonymizedText; // ✅ Changé de 'let' à 'const' let originalIndex = 0;
// Supprimer workingOriginal car elle n'est jamais utilisée let anonymizedIndex = 0;
// Trier les résultats par position (du plus grand au plus petit pour éviter les décalages) // Trier les résultats par position
const sortedResults = [...analyzerResults].sort( const sortedResults = [...analyzerResults].sort((a, b) => a.start - b.start);
(a, b) => b.start - a.start
);
for (const result of sortedResults) { for (const result of sortedResults) {
const originalValue = originalText.substring( const originalValue = originalText.substring(result.start, result.end);
result.start,
result.end
);
// Extraire les parties avant et après l'entité dans le texte original // Avancer jusqu'à la position de l'entité dans le texte original
const beforeOriginal = originalText.substring(0, result.start); while (originalIndex < result.start) {
const afterOriginal = originalText.substring(result.end); originalIndex++;
anonymizedIndex++;
}
// Trouver les mêmes parties dans le texte anonymisé // Maintenant on est au début de l'entité
const beforeIndex = workingText.indexOf(beforeOriginal); // Dans le texte anonymisé, on doit avoir un remplacement qui commence par '['
const afterIndex = workingText.lastIndexOf(afterOriginal); if (anonymizedText[anonymizedIndex] === '[') {
// Trouver la fin du remplacement (le ']')
if (beforeIndex !== -1 && afterIndex !== -1) { let endBracket = anonymizedIndex;
// Extraire la valeur de remplacement entre ces deux parties while (endBracket < anonymizedText.length && anonymizedText[endBracket] !== ']') {
const startPos = beforeIndex + beforeOriginal.length; endBracket++;
const endPos = afterIndex;
const replacementValue = workingText.substring(startPos, endPos);
// Vérifier que c'est bien un remplacement (commence par [ et finit par ])
if (
replacementValue.startsWith("[") &&
replacementValue.endsWith("]")
) {
replacementMap[originalValue] = replacementValue;
} }
endBracket++; // Inclure le ']'
const replacementValue = anonymizedText.substring(anonymizedIndex, endBracket);
replacementMap[originalValue] = replacementValue;
// Avancer les index
originalIndex = result.end;
anonymizedIndex = endBracket;
} else {
// Si pas de '[', avancer normalement
originalIndex = result.end;
anonymizedIndex += (result.end - result.start);
} }
} }
console.log("🔧 Valeurs de remplacement extraites:", replacementMap);
return replacementMap; return replacementMap;
}; };