Sprint 19: Social, UX-Verbesserungen, Nerd2Noob-Hilfe
This commit is contained in:
parent
10d30bf565
commit
89d87030a2
18 changed files with 930 additions and 74 deletions
|
|
@ -1,11 +1,14 @@
|
|||
"""BAN YARO — Forum (Sprint 11)"""
|
||||
|
||||
import os, uuid, json
|
||||
import os, uuid, json, logging
|
||||
from fastapi import APIRouter, Depends, HTTPException, UploadFile, File
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
from database import db
|
||||
from auth import get_current_user, get_current_user_optional
|
||||
from routes.push import send_push_to_user
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
|
@ -295,9 +298,30 @@ async def create_post(thread_id: int, data: PostCreate, user=Depends(get_current
|
|||
WHERE p.id = ?""",
|
||||
(cur.lastrowid,)
|
||||
).fetchone()
|
||||
# Thread-Owner ermitteln für Push-Notification
|
||||
owner_row = conn.execute(
|
||||
"SELECT user_id FROM forum_threads WHERE id = ?", (thread_id,)
|
||||
).fetchone()
|
||||
owner_id = owner_row['user_id'] if owner_row else None
|
||||
|
||||
pd = dict(row)
|
||||
pd['foto_urls'] = []
|
||||
pd['user_liked'] = False
|
||||
|
||||
# Push-Notification an Thread-Owner (nicht an sich selbst)
|
||||
if owner_id and owner_id != user['id']:
|
||||
try:
|
||||
commenter_name = pd.get('autor_name') or 'Jemand'
|
||||
send_push_to_user(owner_id, {
|
||||
"type": "forum_reply",
|
||||
"title": "Neue Antwort auf deinen Beitrag",
|
||||
"body": f"{commenter_name} hat auf deinen Beitrag geantwortet",
|
||||
"tag": f"forum-{thread_id}",
|
||||
"data": {"page": "forum", "id": thread_id},
|
||||
})
|
||||
except Exception:
|
||||
logger.exception("Push-Notification für Forum-Reply fehlgeschlagen (nicht kritisch)")
|
||||
|
||||
return pd
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue