feat(messages): limit message edit window to 7 days
All checks were successful
CI / test (push) Successful in 25s

This commit is contained in:
2026-03-08 13:20:51 +03:00
parent a32ef745c1
commit 041f7ac171

View File

@@ -1,4 +1,5 @@
import json import json
from datetime import datetime, timedelta, timezone
from fastapi import HTTPException, status from fastapi import HTTPException, status
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
@@ -189,6 +190,15 @@ async def update_message(
await ensure_chat_membership(db, chat_id=message.chat_id, user_id=user_id) await ensure_chat_membership(db, chat_id=message.chat_id, user_id=user_id)
if message.sender_id != user_id: if message.sender_id != user_id:
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="You can edit only your own messages") raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="You can edit only your own messages")
created_at = message.created_at
if created_at.tzinfo is None:
created_at = created_at.replace(tzinfo=timezone.utc)
edit_deadline = created_at + timedelta(days=7)
if datetime.now(timezone.utc) > edit_deadline:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail="Message can only be edited within 7 days",
)
message.text = payload.text message.text = payload.text
await db.commit() await db.commit()
await db.refresh(message) await db.refresh(message)