Cup-Runde fortschreiben: Eintrag ohne oder mit falschem Platz wird still übergangen #141
Labels
No labels
Kind
Bug
Kind
Enhancement
Kind
Maintenance
Priority
P1
Priority
P2
Priority
P3
Status
In Progress
Status
Need More Info
Status
Zur Abnahme
Änderungen Wettspielreglement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sffs-tt-basel/sffs-tt-issues#141
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beim Fortschreiben einer Cup-Runde (
POST /api/competition/cup/{categoryId}/rounds/{number}/matches, ab URL-Neuordnung Etappe 3POST /api/team-matchesmitcupCategoryId) trägt jeder Eintrag einen Platz (position), dazu freiwillig Heimteam und Termin.Was passiert:
CupAdvanceEntry.positionist einint. Fehlt das Feld im Inhalt, wird es still zu0.CupTableauService.advance(Zeile ~401) legt die Wünsche nach Platz ab und liest sie nur für die Plätze, die bereit sind. Ein Eintrag mit Platz0— oder mit einem Platz, den es in der Runde nicht gibt, etwa99— wird darum ohne Meldung übergangen: Die Begegnung entsteht mit dem gerechneten Heimrecht und ohne Termin, obwohl der Aufrufer beides angegeben hat.Beispiel:
{"entries":[{"homeTeamId":12,"scheduledAt":"2026-11-05T19:30:00"}]}→200/201, die Begegnung hat ein anderes Heimteam und keinen Termin.Erwartet:
400, wennpositionfehlt oder keinen bereiten Platz der Runde bezeichnet (wie beim Setzen des Tableaus,resolveEntries, Zeile ~135: „Platz … liegt ausserhalb …“). Dazu im Schemapositionals Pflichtfeld (Integermit Prüfung stattint).Das Portal schickt
positionimmer mit (CupTableau.tsx), betroffen sind andere Aufrufer und veraltete Tabs. Gefunden im Review des Plans zu Etappe 3 (24.10.), dort bewusst nicht mitgebaut.Dazu aus dem Review von Etappe 3 (24.10.): Ein Eintrag
nullinentries({"entries":[null]}) führt inCupTableauService.advancezu einer NullPointerException (wunsch.put(entry.position(), …)) und damit zu500. Gehört zur selben Prüfung der Einträge:400mit Fehlertext statt500. Betrifft ab Etappe 3POST /api/team-matchesmitcupCategoryId.