feat: Bank ueber alle Laender suchen
Unter "Deutschland" liessen sich N26 und Revolut nicht finden – und bei Revolut kann das gar nicht klappen: Die Bank vergibt deutsche IBANs, ist aber die Revolut Bank UAB in Litauen. Das Sitzland einer Bank steht nicht in der IBAN, also ist die Laenderauswahl der falsche Einstieg. Jetzt ein Suchfeld, das ohne Land ueber alle sucht; das Land ist nur noch ein optionaler Filter. Der Treffer zeigt sein Land mit an, und verbunden wird mit dem Land der BANK statt dem des Filters – sonst schluege die Autorisierung fehl, sobald ohne Land gesucht wurde. Ohne Land UND ohne Begriff wird abgelehnt: Sonst kaemen alle Banken Europas ins Formular. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -56,11 +56,21 @@ def delete_app(db: Session = Depends(get_db), user: User = Depends(get_current_u
|
||||
|
||||
|
||||
@router.get("/banks")
|
||||
def list_banks(country: str, db: Session = Depends(get_db),
|
||||
def list_banks(country: str | None = None, search: str | None = None,
|
||||
db: Session = Depends(get_db),
|
||||
user: User = Depends(get_current_user)) -> list[dict]:
|
||||
"""Verfügbare Banken eines Landes – für die Auswahl beim Verbinden."""
|
||||
"""Banken suchen – in einem Land oder über alle hinweg.
|
||||
|
||||
Ohne ``country`` wird überall gesucht. Das braucht es, weil die IBAN nicht
|
||||
verrät, wo eine Bank sitzt: Revolut vergibt deutsche IBANs aus Litauen.
|
||||
"""
|
||||
if not country and not search:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail="Bitte ein Land wählen oder einen Suchbegriff eingeben.",
|
||||
)
|
||||
try:
|
||||
return bank_sync.banken(db, user, country)
|
||||
return bank_sync.banken(db, user, country, search)
|
||||
except BankFehler as e:
|
||||
raise _fehler(e) from e
|
||||
|
||||
|
||||
Reference in New Issue
Block a user