fix: "Keine Konten" nennt jetzt die Ursache
Drei verschiedene Faelle sahen alle gleich aus: Die Bank schickte nichts, sie schickte Eintraege ohne Kennung (die still verworfen wurden), oder alle Konten waren schon bekannt – Letzteres meldete faelschlich "0 Konten", obwohl alles in Ordnung war. Die Antwort unterscheidet jetzt uebermittelt / neu / bekannt / ohne_kennung. Die Rueckkehr-Seite zeigt bei null nutzbaren Konten den passenden Hinweis: Im eingeschraenkten Betrieb gibt eine Bank nur heraus, was zuvor im Control Panel unter "Activate by linking accounts" verknuepft wurde. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -188,10 +188,15 @@ def schliesse_verbindung(db: Session, user: User, state: str, code: str) -> dict
|
||||
except ValueError:
|
||||
verbindung.valid_until = None
|
||||
|
||||
neu = 0
|
||||
for konto in daten.get("accounts", []):
|
||||
uebermittelt = daten.get("accounts") or []
|
||||
neu = bekannt = ohne_kennung = 0
|
||||
for konto in uebermittelt:
|
||||
uid = konto.get("uid")
|
||||
if not uid:
|
||||
# Nicht stillschweigend verwerfen: Sonst sieht „0 Konten" genauso
|
||||
# aus, als hätte die Bank gar nichts geschickt – und man sucht den
|
||||
# Fehler bei der Bank statt hier.
|
||||
ohne_kennung += 1
|
||||
continue
|
||||
vorhanden = (
|
||||
db.query(BankAccountLink)
|
||||
@@ -199,7 +204,9 @@ def schliesse_verbindung(db: Session, user: User, state: str, code: str) -> dict
|
||||
.first()
|
||||
)
|
||||
if vorhanden is not None:
|
||||
# Schon bekannt – die Zuordnung bleibt bewusst erhalten.
|
||||
vorhanden.connection_id = verbindung.id
|
||||
bekannt += 1
|
||||
continue
|
||||
db.add(BankAccountLink(
|
||||
owner_id=user.id,
|
||||
@@ -212,8 +219,15 @@ def schliesse_verbindung(db: Session, user: User, state: str, code: str) -> dict
|
||||
neu += 1
|
||||
|
||||
db.commit()
|
||||
return {"connection_id": verbindung.id, "konten": neu,
|
||||
"valid_until": verbindung.valid_until.isoformat() if verbindung.valid_until else None}
|
||||
return {
|
||||
"connection_id": verbindung.id,
|
||||
"konten": neu + bekannt, # nutzbar, egal ob neu oder schon bekannt
|
||||
"neu": neu,
|
||||
"bekannt": bekannt,
|
||||
"uebermittelt": len(uebermittelt),
|
||||
"ohne_kennung": ohne_kennung,
|
||||
"valid_until": verbindung.valid_until.isoformat() if verbindung.valid_until else None,
|
||||
}
|
||||
|
||||
|
||||
def _betrag_cents(umsatz: dict) -> int | None:
|
||||
|
||||
Reference in New Issue
Block a user