This commit is contained in:
nBiqoz
2025-09-07 12:47:06 +02:00
parent ef0819ae90
commit 88a94c46fe

View File

@@ -174,7 +174,8 @@ 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 = "http://localhost:5001/analyze"; const presidioAnalyzerUrl =
"http://analyzer.151.80.20.211.sslip.io/analyze";
try { try {
const analyzeResponse = await fetch(presidioAnalyzerUrl, { const analyzeResponse = await fetch(presidioAnalyzerUrl, {
@@ -211,7 +212,8 @@ export async function POST(req: NextRequest) {
}; };
console.log("🔍 Appel à Presidio Anonymizer..."); console.log("🔍 Appel à Presidio Anonymizer...");
const presidioAnonymizerUrl = "http://localhost:5001/anonymize"; const presidioAnonymizerUrl =
"http://analyzer.151.80.20.211.sslip.io/anonymize";
const anonymizeResponse = await fetch(presidioAnonymizerUrl, { const anonymizeResponse = await fetch(presidioAnonymizerUrl, {
method: "POST", method: "POST",
@@ -241,58 +243,74 @@ export async function POST(req: NextRequest) {
end: number; end: number;
score: number; score: number;
} }
// Puis modifier la fonction // Puis modifier la fonction
const extractReplacementValues = (originalText: string, anonymizedText: string, analyzerResults: AnalyzerResult[]) => { const extractReplacementValues = (
originalText: string,
anonymizedText: string,
analyzerResults: AnalyzerResult[]
) => {
const replacementMap: Record<string, string> = {}; const replacementMap: Record<string, string> = {};
// Créer une copie du texte anonymisé pour le traitement // Créer une copie du texte anonymisé pour le traitement
const workingText = anonymizedText; // ✅ Changé de 'let' à 'const' const workingText = anonymizedText; // ✅ Changé de 'let' à 'const'
// Supprimer workingOriginal car elle n'est jamais utilisée // Supprimer workingOriginal car elle n'est jamais utilisée
// Trier les résultats par position (du plus grand au plus petit pour éviter les décalages) // Trier les résultats par position (du plus grand au plus petit pour éviter les décalages)
const sortedResults = [...analyzerResults].sort((a, b) => b.start - a.start); const sortedResults = [...analyzerResults].sort(
(a, b) => b.start - a.start
);
for (const result of sortedResults) { for (const result of sortedResults) {
const originalValue = originalText.substring(result.start, result.end); const originalValue = originalText.substring(
result.start,
result.end
);
// Extraire les parties avant et après l'entité dans le texte original // Extraire les parties avant et après l'entité dans le texte original
const beforeOriginal = originalText.substring(0, result.start); const beforeOriginal = originalText.substring(0, result.start);
const afterOriginal = originalText.substring(result.end); const afterOriginal = originalText.substring(result.end);
// Trouver les mêmes parties dans le texte anonymisé // Trouver les mêmes parties dans le texte anonymisé
const beforeIndex = workingText.indexOf(beforeOriginal); const beforeIndex = workingText.indexOf(beforeOriginal);
const afterIndex = workingText.lastIndexOf(afterOriginal); const afterIndex = workingText.lastIndexOf(afterOriginal);
if (beforeIndex !== -1 && afterIndex !== -1) { if (beforeIndex !== -1 && afterIndex !== -1) {
// Extraire la valeur de remplacement entre ces deux parties // Extraire la valeur de remplacement entre ces deux parties
const startPos = beforeIndex + beforeOriginal.length; const startPos = beforeIndex + beforeOriginal.length;
const endPos = afterIndex; const endPos = afterIndex;
const replacementValue = workingText.substring(startPos, endPos); const replacementValue = workingText.substring(startPos, endPos);
// Vérifier que c'est bien un remplacement (commence par [ et finit par ]) // Vérifier que c'est bien un remplacement (commence par [ et finit par ])
if (replacementValue.startsWith('[') && replacementValue.endsWith(']')) { if (
replacementValue.startsWith("[") &&
replacementValue.endsWith("]")
) {
replacementMap[originalValue] = replacementValue; replacementMap[originalValue] = replacementValue;
} }
} }
} }
return replacementMap; return replacementMap;
}; };
const replacementValues = extractReplacementValues(fileContent, anonymizerResult.anonymized_text, analyzerResults); const replacementValues = extractReplacementValues(
fileContent,
anonymizerResult.anonymized_text,
analyzerResults
);
// 🔍 AJOUT D'UN LOG POUR DÉBOGUER // 🔍 AJOUT D'UN LOG POUR DÉBOGUER
console.log("🔧 Valeurs de remplacement extraites:", replacementValues); console.log("🔧 Valeurs de remplacement extraites:", replacementValues);
const result = { const result = {
text: fileContent, text: fileContent,
anonymizedText: anonymizerResult.anonymized_text, anonymizedText: anonymizerResult.anonymized_text,
piiCount: analyzerResults.length, piiCount: analyzerResults.length,
analyzerResults: analyzerResults, analyzerResults: analyzerResults,
replacementValues: replacementValues // Utiliser les nouvelles valeurs replacementValues: replacementValues, // Utiliser les nouvelles valeurs
}; };
return NextResponse.json(result, { status: 200 }); return NextResponse.json(result, { status: 200 });
} catch (presidioError) { } catch (presidioError) {
console.error("❌ Erreur Presidio:", presidioError); console.error("❌ Erreur Presidio:", presidioError);