aboutsummaryrefslogtreecommitdiff
path: root/api/routes/user_routes.py
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-11-15 16:47:08 -0600
committerParker <contact@pkrm.dev>2024-11-15 16:47:08 -0600
commit71b0792edd2e9b36416e0da5b904045763dde4b6 (patch)
tree0ada3464b88a5fdb27f3615a2e72a7ba1a8d1648 /api/routes/user_routes.py
parentf85378e53cd7c22f36fa439c868af37f67e27099 (diff)
Delete links/logs on account deletion
Diffstat (limited to 'api/routes/user_routes.py')
-rw-r--r--api/routes/user_routes.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/api/routes/user_routes.py b/api/routes/user_routes.py
index 16f6778..b494d1d 100644
--- a/api/routes/user_routes.py
+++ b/api/routes/user_routes.py
@@ -11,6 +11,8 @@ from api.util.check_password_reqs import check_password_reqs
from api.schemas.auth_schemas import User
from api.schemas.user_schemas import *
from models import User as UserModel
+from models import Link as LinkModel
+from models import Log as LogModel
from api.util.authentication import (
verify_password,
get_current_user,
@@ -54,6 +56,16 @@ async def delete_user(
detail="User not found",
)
+ # Delete all links and logs associated with the user
+ links = (
+ db.query(LinkModel).filter(LinkModel.owner == current_user.id).all()
+ )
+ for link in links:
+ db.delete(link)
+ logs = db.query(LogModel).filter(LogModel.link == link.link).all()
+ for log in logs:
+ db.delete(log)
+
db.delete(user)
db.commit()
return status.HTTP_204_NO_CONTENT