=== app/api/routers/__init__.py ===
=== app/api/routers/accounts.py ===
@router.get("/accounts"
@router.post("/accounts/connect"
@router.post("/accounts/{account_id}/test"
@router.post("/accounts/{account_id}/reauthorize"
@router.post("/accounts/{account_id}/revoke"
@router.delete("/accounts/{account_id}"
@router.post("/accounts/clear-all"
@router.post("/accounts/import-config"
@router.patch("/accounts/{account_id}"
=== app/api/routers/attachments.py ===
@router.get("/list"
@router.post("/upload"
@router.post("/convert-pdf"
@router.get("/{att_id}"
@router.get("/{att_id}/download"
@router.get("/{att_id}/preview"
@router.post("/{att_id}/delete"
@router.post("/clear-all"
=== app/api/routers/auth.py ===
@router.post("/register"
@router.post("/login"
@router.post("/logout"
@router.get("/me"
@router.get("/google/start"
@router.get("/google/callback"
=== app/api/routers/campaigns.py ===
@router.get("/list"
@router.post("/create"
@router.get("/{cid}"
@router.post("/{cid}/patch"
@router.post("/{cid}/delete"
@router.post("/clear-all"
@router.post("/{cid}/preview"
@router.post("/{cid}/start"
@router.post("/{cid}/pause"
@router.post("/{cid}/resume"
@router.post("/{cid}/cancel"
@router.get("/{cid}/progress"
@router.get("/{cid}/stream"
@router.get("/{cid}/recipients"
@router.get("/{cid}/export"
@router.get("/wizard/options"
@router.post("/validate-step"
=== app/api/routers/dashboard.py ===
@router.get("/overview"
@router.get("/status"
=== app/api/routers/logs.py ===
@router.get("/list"
@router.get("/events"
@router.get("/audit"
@router.get("/dlq"
@router.get("/export"
@router.get("/recipient/{cr_id}/history"
=== app/api/routers/phones.py ===
@router.get("/list"
@router.post("/add"
@router.post("/import"
@router.post("/{pid}/patch"
@router.post("/{pid}/delete"
@router.post("/clear-all"
=== app/api/routers/recipients.py ===
@router.get("/lists"
@router.post("/lists"
@router.post("/import-preview"
@router.post("/import"
@router.post("/manual"
@router.get("/list"
@router.delete("/{recipient_id}"
@router.delete("/lists/{list_id}"
@router.post("/lists/{list_id}/clear"
=== app/api/routers/settings_router.py ===
@router.get("/list"
@router.post("/save"
@router.post("/save-batch"
@router.post("/reset"
@router.post("/reset-all"
=== app/api/routers/subjects.py ===
@router.get("/list"
@router.post(""
@router.post("/bulk"
@router.post("/import"
@router.get("/export"
@router.put("/{subject_id}"
@router.delete("/{subject_id}"
@router.post("/clear-all"
=== app/api/routers/suppression.py ===
@router.get("/list"
@router.post("/add"
@router.post("/import"
@router.post("/bulk"
@router.post("/check"
@router.post("/{sid}/delete"
@router.post("/clear-all"
=== app/api/routers/templates.py ===
@router.get("/list"
@router.post(""
@router.post("/upload"
@router.post("/upload-multiple"
@router.get("/{template_id}"
@router.put("/{template_id}"
@router.post("/{template_id}/duplicate"
@router.delete("/{template_id}"
@router.post("/clear-all"
@router.post("/{template_id}/preview"
@router.post("/{template_id}/test-pdf"
=== app/api/routers/test_send.py ===
@router.post("/send"
@router.get("/accounts"
@router.get("/templates"
=== app/api/routers/unsubscribe.py ===
@router.get("/unsubscribe/{token}"
@router.post("/unsubscribe/{token}"
@router.get("/unsubscribe-status/{token}"
