### fix: 33 verbessere API-Antwort-Handling und Versionsmarker
All checks were successful
All checks were successful
- **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:
parent
23c3e40390
commit
bd06efe05d
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user