### fix: 33 verbessere API-Antwort-Handling und Versionsmarker
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m48s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m13s

- **NennungRemoteRepository:** Handling für leeren JSON-Body angepasst.
- **MailController:** JSON-Antwort mit Erfolgsstatus und ID hinzugefügt.
- **WebMainScreen:** Versionsmarker auf `v2026-04-23.33 - JSON RESPONSE FIX` aktualisiert.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 16:59:05 +02:00
parent 23c3e40390
commit bd06efe05d
4 changed files with 16 additions and 4 deletions

View File

@ -49,7 +49,7 @@ class MailController(
private lateinit var baseMailAddress: String
@PostMapping("/nennung")
fun receiveNennung(@Valid @RequestBody request: NennungRequest) {
fun receiveNennung(@Valid @RequestBody request: NennungRequest): Map<String, Any> {
logger.info("Nennung via API erhalten: ${request.vorname} ${request.nachname} für Turnier ${request.turnierNr}")
val entity = NennungEntity(
@ -130,6 +130,12 @@ class MailController(
} catch (e: Exception) {
logger.error("KRITISCH: Fehler beim Senden der Bestätigungs-Mail an ${request.email}: ${e.message}", e)
}
return mapOf(
"success" to true,
"message" to "Nennung erhalten und verarbeitet",
"id" to entity.id.toString()
)
}
@GetMapping("/nennungen")

View File

@ -122,3 +122,9 @@ Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare erse
- Erweiterung des Loggings im `NennungRemoteRepository`, um API-Antworten (Status & Body) in der Konsole zu sehen.
- Erhöhung der Diagnose-Transparenz im Caddy-Proxy (v32).
- Ziel: Identifikation, warum Requests im Same-Origin Modus scheinbar still scheitern.
### v2026-04-23.33 - JSON RESPONSE FIX
- **Analyse**: Version 32 zeigte, dass der Server mit `200 OK`, aber einem leeren Body antwortet. Das Frontend (KMP/Wasm) wartete jedoch auf eine JSON-Antwort, was zum "Hängen" im Ladezustand führte.
- **Backend-Fix**: `MailController.kt` gibt nun explizit ein JSON-Objekt `{"success": true, ...}` zurück.
- **Frontend-Härtung**: `NennungRemoteRepository.kt` wurde robuster gegenüber leeren Antwort-Bodies gestaltet.
- **Status**: Versionsmarker v33.

View File

@ -101,8 +101,8 @@ class NennungRemoteRepository(private val client: HttpClient) {
}
println("Antwort erhalten: ${response.status.value}")
val responseText = try { response.body<String>() } catch (e: Exception) { "Kein Body" }
println("Antwort Body: $responseText")
val responseText = try { response.body<String>() } catch (e: Exception) { "" }
println("Antwort Body: '$responseText'")
if (response.status.isSuccess()) {
Result.success(Unit)

View File

@ -126,7 +126,7 @@ fun MainAppContent() {
// Dezentraler Versions-Marker in der unteren rechten Ecke
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
Text(
text = "v2026-04-23.32 - PROXY DEBUG",
text = "v2026-04-23.33 - JSON RESPONSE FIX",
style = MaterialTheme.typography.labelSmall,
color = Color.LightGray.copy(alpha = 0.5f)
)