diff --git a/app/messages/service.py b/app/messages/service.py index add62d2..d0be81d 100644 --- a/app/messages/service.py +++ b/app/messages/service.py @@ -1,4 +1,5 @@ import json +from datetime import datetime, timedelta, timezone from fastapi import HTTPException, status 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) if message.sender_id != user_id: 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 await db.commit() await db.refresh(message)