From 511e9bf66c02a5da1c85ebfe8b06c0b79a9f0759 Mon Sep 17 00:00:00 2001
From: Jan-Niclas Struewer <j.n.struewer@gmail.com>
Date: Sun, 28 Jul 2024 21:21:53 +0200
Subject: [PATCH] feature: added validation for data transformation from cve to
 create kpi dto

---
 .../fraunhofer/iem/adapter/cve/CveAdapter.kt  | 20 ++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/kpi-calculator/adapter/src/main/kotlin/de/fraunhofer/iem/adapter/cve/CveAdapter.kt b/kpi-calculator/adapter/src/main/kotlin/de/fraunhofer/iem/adapter/cve/CveAdapter.kt
index 213e4d8c..e2519b47 100644
--- a/kpi-calculator/adapter/src/main/kotlin/de/fraunhofer/iem/adapter/cve/CveAdapter.kt
+++ b/kpi-calculator/adapter/src/main/kotlin/de/fraunhofer/iem/adapter/cve/CveAdapter.kt
@@ -10,11 +10,21 @@ object CveAdapter : KpiAdapter<VulnerabilityDto> {
         get() = KpiKind.VULNERABILITY_SCORE
 
     override fun transformDataToKpi(data: List<VulnerabilityDto>): List<RawValueKpiCreateDto> {
-        return data.map {
-            RawValueKpiCreateDto(
-                kind = kpiKind,
-                score = (it.severity * 10).toInt()
+        return data
+            .filter(::filterData)
+            .map {
+                RawValueKpiCreateDto(
+                    kind = kpiKind,
+                    score = (it.severity * 10).toInt()
+                )
+            }
+    }
+
+    private fun filterData(data: VulnerabilityDto): Boolean {
+        return (
+            data.severity in 0.0..10.0 &&
+                data.packageName.isNotBlank() &&
+                data.cveIdentifier.isNotBlank()
             )
-        }
     }
 }
-- 
GitLab