fr
This commit is contained in:
@@ -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",
|
||||||
@@ -251,46 +249,47 @@ export async function POST(req: NextRequest) {
|
|||||||
analyzerResults: AnalyzerResult[]
|
analyzerResults: AnalyzerResult[]
|
||||||
) => {
|
) => {
|
||||||
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
|
// Avancer jusqu'à la position de l'entité dans le texte original
|
||||||
);
|
while (originalIndex < result.start) {
|
||||||
|
originalIndex++;
|
||||||
// Extraire les parties avant et après l'entité dans le texte original
|
anonymizedIndex++;
|
||||||
const beforeOriginal = originalText.substring(0, result.start);
|
}
|
||||||
const afterOriginal = originalText.substring(result.end);
|
|
||||||
|
// Maintenant on est au début de l'entité
|
||||||
// Trouver les mêmes parties dans le texte anonymisé
|
// Dans le texte anonymisé, on doit avoir un remplacement qui commence par '['
|
||||||
const beforeIndex = workingText.indexOf(beforeOriginal);
|
if (anonymizedText[anonymizedIndex] === '[') {
|
||||||
const afterIndex = workingText.lastIndexOf(afterOriginal);
|
// Trouver la fin du remplacement (le ']')
|
||||||
|
let endBracket = anonymizedIndex;
|
||||||
if (beforeIndex !== -1 && afterIndex !== -1) {
|
while (endBracket < anonymizedText.length && anonymizedText[endBracket] !== ']') {
|
||||||
// Extraire la valeur de remplacement entre ces deux parties
|
endBracket++;
|
||||||
const startPos = beforeIndex + beforeOriginal.length;
|
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user