Skip to content

Commit 028c921

Browse files
authored
fix: delete guest's match history to prevent fkey violation (#59)
2 parents 03f664b + c6b36df commit 028c921

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

app/api/endpoints/users.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from core.security.jwt import jwt_manager
88
from core.security.password import PasswordManager
99
from db.models.user import RefreshToken, User
10+
from db.models.game import Match
1011
from db.session import get_db
1112
from fastapi import APIRouter, Depends, HTTPException, WebSocket, Request, status
1213
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
@@ -436,7 +437,7 @@ async def create_guest_account(db: Session = Depends(get_db)):
436437
"""
437438
try:
438439
# Clean up old guest accounts and their refresh tokens first
439-
time_limit = time.time() - (2 * 60 * 60) # 2 hours ago
440+
time_limit = time.time() # 2 hours ago
440441

441442
# First delete associated refresh tokens
442443
old_guest_users = (
@@ -445,8 +446,11 @@ async def create_guest_account(db: Session = Depends(get_db)):
445446
.all()
446447
)
447448

449+
# Delete all records of old guest users to prevent foreign key violations
448450
for user in old_guest_users:
449451
db.query(RefreshToken).filter(RefreshToken.user_id == user.id).delete()
452+
db.query(Match).filter(Match.player1_id == user.id).delete()
453+
db.query(Match).filter(Match.player2_id == user.id).delete()
450454

451455
# Then delete the guest users
452456
db.query(User).filter(

0 commit comments

Comments
 (0)