Aufgabe 21: WhatsApp-Webhook Queue-Integration #12

Open
opened 2026-06-22 18:21:39 +02:00 by danielkrause · 0 comments
Owner

Aufgabe 21 — WhatsApp-Webhook mit Queue verbinden

Aktuell ist in src/routes/whatsapp.py nur ein Platzhalter-Kommentar (# Hier würde die Submission in die Queue eingereiht werden). Der WhatsApp-Webhook muss wie der Telegram-Webhook funktionieren: Submission bauen und in die Queue einreihen.

Datei: src/routes/whatsapp.py

  1. Nach erfolgreicher Signatur-Prüfung: WhatsApp-Nachrichtendaten parsen
  2. Submission-Objekt bauen (message_id aus wamid.*, absender aus from, text aus text.body)
  3. current_app.queue_handler.enqueue(submission) aufrufen
  4. Status accepted zurückgeben (wie Telegram)

Was der WhatsApp-POST-Body enthält:

{
  "entry": [{
    "changes": [{
      "value": {
        "messages": [{
          "from": "491522...",
          "id": "wamid.xxx",
          "text": {"body": "Suche Catan"}
        }]
      }
    }]
  }]
}

Test-Datei: tests/routes/test_whatsapp_queue.py

  • 3 Tests:
    1. test_whatsapp_post_enqueues_submission — Valide WhatsApp-Payload → Queue
    2. test_whatsapp_post_invalid_body_returns_400
    3. test_whatsapp_post_missing_text_returns_400

Commit: feat: WhatsApp-Webhook reiht Submissions in Queue ein

## Aufgabe 21 — WhatsApp-Webhook mit Queue verbinden Aktuell ist in `src/routes/whatsapp.py` nur ein Platzhalter-Kommentar (`# Hier würde die Submission in die Queue eingereiht werden`). Der WhatsApp-Webhook muss wie der Telegram-Webhook funktionieren: Submission bauen und in die Queue einreihen. ### Datei: `src/routes/whatsapp.py` 1. Nach erfolgreicher Signatur-Prüfung: WhatsApp-Nachrichtendaten parsen 2. `Submission`-Objekt bauen (message_id aus `wamid.*`, absender aus `from`, text aus `text.body`) 3. `current_app.queue_handler.enqueue(submission)` aufrufen 4. Status `accepted` zurückgeben (wie Telegram) ### Was der WhatsApp-POST-Body enthält: ```json { "entry": [{ "changes": [{ "value": { "messages": [{ "from": "491522...", "id": "wamid.xxx", "text": {"body": "Suche Catan"} }] } }] }] } ``` ### Test-Datei: `tests/routes/test_whatsapp_queue.py` - 3 Tests: 1. `test_whatsapp_post_enqueues_submission` — Valide WhatsApp-Payload → Queue 2. `test_whatsapp_post_invalid_body_returns_400` 3. `test_whatsapp_post_missing_text_returns_400` **Commit:** `feat: WhatsApp-Webhook reiht Submissions in Queue ein`
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: danielkrause/BSN-Livesystem#12