feat: verbessere Onboarding-Workflow, verbessere mDNS-Discovery & ZNS-Import
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Failing after 1m1s
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 6m29s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m14s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Failing after 1m17s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m48s
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Failing after 1m1s
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 6m29s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m14s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Failing after 1m17s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m48s
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
+29
-12
@@ -47,10 +47,10 @@ class ZnsImportService(
|
||||
companion object {
|
||||
private val CP850 = Charset.forName("Cp850")
|
||||
|
||||
private const val FILE_VEREIN = "VEREIN01.DAT"
|
||||
private const val FILE_LIZENZ = "LIZENZ01.DAT"
|
||||
private const val FILE_PFERDE = "PFERDE01.DAT"
|
||||
private const val FILE_RICHT = "RICHT01.DAT"
|
||||
private const val FILE_VEREIN = "VEREIN"
|
||||
private const val FILE_LIZENZ = "LIZENZ"
|
||||
private const val FILE_PFERDE = "PFERDE"
|
||||
private const val FILE_RICHT = "RICHT"
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,7 +65,16 @@ class ZnsImportService(
|
||||
while (entry != null) {
|
||||
val fileName = entry.name.uppercase().substringAfterLast("/")
|
||||
|
||||
if (fileName in setOf(FILE_VEREIN, FILE_LIZENZ, FILE_PFERDE, FILE_RICHT)) {
|
||||
// Toleranter Check: Erkennt VEREIN01.DAT, VEREIN.DAT, etc.
|
||||
val targetKey = when {
|
||||
fileName.startsWith(FILE_VEREIN) -> FILE_VEREIN
|
||||
fileName.startsWith(FILE_LIZENZ) -> FILE_LIZENZ
|
||||
fileName.startsWith(FILE_PFERDE) -> FILE_PFERDE
|
||||
fileName.startsWith(FILE_RICHT) -> FILE_RICHT
|
||||
else -> null
|
||||
}
|
||||
|
||||
if (targetKey != null && fileName.endsWith(".DAT")) {
|
||||
// Wir lesen den Stream direkt zeilenweise mit dem korrekten Encoding
|
||||
val lines = mutableListOf<String>()
|
||||
val reader = zip.bufferedReader(CP850)
|
||||
@@ -78,8 +87,8 @@ class ZnsImportService(
|
||||
}
|
||||
line = reader.readLine()
|
||||
}
|
||||
println("[DEBUG_LOG] Datei $fileName extrahiert: ${lines.size} Zeilen")
|
||||
dateien[fileName] = lines
|
||||
println("[DEBUG_LOG] Datei $fileName extrahiert als $targetKey: ${lines.size} Zeilen")
|
||||
dateien[targetKey] = lines
|
||||
}
|
||||
zip.closeEntry()
|
||||
entry = zip.nextEntry
|
||||
@@ -129,20 +138,20 @@ class ZnsImportService(
|
||||
var richterImportiert = 0
|
||||
var richterAktualisiert = 0
|
||||
|
||||
when (fileName) {
|
||||
FILE_VEREIN -> {
|
||||
when {
|
||||
fileName.startsWith(FILE_VEREIN) -> {
|
||||
val (n, u) = importiereVereine(lines, fehler)
|
||||
vereineImportiert = n
|
||||
vereineAktualisiert = u
|
||||
}
|
||||
|
||||
FILE_LIZENZ -> {
|
||||
fileName.startsWith(FILE_LIZENZ) -> {
|
||||
val (n, u) = importiereReiter(lines, fehler, warnungen)
|
||||
reiterImportiert = n
|
||||
reiterAktualisiert = u
|
||||
}
|
||||
|
||||
FILE_PFERDE -> {
|
||||
fileName.startsWith(FILE_PFERDE) -> {
|
||||
if (mode == ZnsImportMode.FULL) {
|
||||
val (n, u) = importierePferde(lines, fehler)
|
||||
pferdeImportiert = n
|
||||
@@ -150,7 +159,7 @@ class ZnsImportService(
|
||||
}
|
||||
}
|
||||
|
||||
FILE_RICHT -> {
|
||||
fileName.startsWith(FILE_RICHT) -> {
|
||||
if (mode == ZnsImportMode.FULL) {
|
||||
val (n, u) = importiereFunktionaere(lines, fehler, warnungen)
|
||||
richterImportiert = n
|
||||
@@ -211,6 +220,14 @@ class ZnsImportService(
|
||||
richterUpd = rUpd
|
||||
}
|
||||
|
||||
// Zusätzliche Warnung wenn Dateien fehlen
|
||||
if (dateien[FILE_VEREIN] == null) warnungen.add("Vereinsdaten (VEREIN*.DAT) nicht gefunden.")
|
||||
if (dateien[FILE_LIZENZ] == null) warnungen.add("Reiter/Lizenzdaten (LIZENZ*.DAT) nicht gefunden.")
|
||||
if (mode == ZnsImportMode.FULL) {
|
||||
if (dateien[FILE_PFERDE] == null) warnungen.add("Pferdedaten (PFERDE*.DAT) nicht gefunden.")
|
||||
if (dateien[FILE_RICHT] == null) warnungen.add("Funktionärsdaten (RICHT*.DAT) nicht gefunden.")
|
||||
}
|
||||
|
||||
return ZnsImportResult(
|
||||
vereineImportiert = vereineNeu,
|
||||
vereineAktualisiert = vereineUpd,
|
||||
|
||||
Reference in New Issue
Block a user