From 5f69a52764f931d66e924336068ab515065e925e Mon Sep 17 00:00:00 2001 From: Jaronim Pracht Date: Sat, 14 Jun 2025 18:15:35 +0200 Subject: [PATCH] Implement entity validation logic in validate service --- .../validate-service/validate_logic.py | 56 +++++++++++++++---- .../extractedResult_.$pitchBook.$kpi.tsx | 2 + 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/project/backend/validate-service/validate_logic.py b/project/backend/validate-service/validate_logic.py index 4685790..1bbacbe 100644 --- a/project/backend/validate-service/validate_logic.py +++ b/project/backend/validate-service/validate_logic.py @@ -1,12 +1,46 @@ +from typing import Dict, List + + def validate_entities(entities): - return entities - #todo - valid = [] - for entity in entities: - if entity["type"] == "PERSON": - if entity["name"] == "John Doe": - valid.append(entity) - elif entity["type"] == "ORG": - if entity["name"] == "Exxeta": - valid.append(entity) - return valid + result = [] + reduced_kpi: Dict[str, List[Dict[str, str | int]]] = {} + for item in entities: + label = item["label"] + if label not in reduced_kpi: + reduced_kpi[label] = [] + reduced_kpi[label].append(item) + + for item in reduced_kpi.items(): + if item[0] == "FONDSNAME": + result.extend(item[1]) + continue + elif item[0] == "DATUM": + result.extend(item[1]) + continue + elif item[0] == "FONDSMANAGER": + result.extend(item[1]) + continue + + validated = False + for entity in item[1]: + if entity["status"] == "validated": + validated = True + + if validated: + item_list = [x for x in item[1] if x["status"] == "validated"] + result.extend(item_list) + else: + result.extend(item[1]) + + return result + +if __name__ == "__main__": + entities = [ + {"label": "PERSON", "entity": "John Doe", "status": "validated"}, + {"label": "PERSON", "entity": "Exxeta", "status": "invalid"}, + {"label": "ORG", "entity": "Google", "status": "invalid"}, + {"label": "FONDSNAME", "entity": "Microsoft", "status": "validated"}, + {"label": "FONDSNAME", "entity": "Amazon", "status": "invalid"}, + {"label": "FONDSNAME", "entity": "Apple", "status": "invalid"} + ] + print(validate_entities(entities)) diff --git a/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx b/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx index 5049987..dc50348 100644 --- a/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx +++ b/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx @@ -91,6 +91,7 @@ function ExtractedResultsPage() { } else { const index = Number.parseInt(value); setSelectedIndex(index); + setCurrentPage(kpiValues[index].page); setCustomValue(""); } }; @@ -104,6 +105,7 @@ function ExtractedResultsPage() { }; const handleRowClick = (index: number) => { + setCurrentPage(kpiValues[index].page); setSelectedIndex(index); setCustomValue(""); }; -- 2.43.0