fix: Rich-Markup-Fehler bei leeren Styles + Telefonnummer-Normalisierung

- _render_message: leeren style-Tag vermieden (MarkupError bei inbound-Msgs)
- Nachrichtentext: eckige Klammern werden escaped (kein Markup-Injection)
- get_by_phone: sucht +49xxx und 49xxx gleichzeitig (Green API liefert ohne +)
This commit is contained in:
2026-03-13 14:58:04 +01:00
parent 0f73341c8b
commit b0c6ba44de
2 changed files with 13 additions and 10 deletions

View File

@@ -19,11 +19,14 @@ def get_by_telegram_id(db: Session, telegram_id: str) -> Contact | None:
def get_by_phone(db: Session, phone: str) -> Contact | None:
return (
db.query(Contact)
.filter((Contact.phone == phone) | (Contact.whatsapp_phone == phone))
.first()
)
# Normalisierung: mit und ohne führendes + suchen
variants = {phone, "+" + phone.lstrip("+"), phone.lstrip("+")}
from sqlalchemy import or_
conditions = or_(*(
(Contact.phone == v) | (Contact.whatsapp_phone == v)
for v in variants
))
return db.query(Contact).filter(conditions).first()
def create(db: Session, data: ContactCreate) -> Contact: