Jelajahi Sumber

fix: delete auth with user

Timothy J. Baek 1 tahun lalu
induk
melakukan
5b4bf45ad2

+ 16 - 0
backend/apps/web/models/auths.py

@@ -109,5 +109,21 @@ class AuthsTable:
         except:
             return None
 
+    def delete_auth_by_id(self, id: str) -> Optional[UserModel]:
+        try:
+            # Delete User
+            result = Users.delete_user_by_id(id)
+
+            if result:
+                # Delete Auth
+                query = Auth.delete().where(Auth.id == id)
+                query.execute()  # Remove the rows, return number of rows removed.
+
+                return True
+            else:
+                return False
+        except:
+            return False
+
 
 Auths = AuthsTable(DB)

+ 2 - 2
backend/apps/web/models/users.py

@@ -8,7 +8,7 @@ from utils.utils import decode_token
 from utils.misc import get_gravatar_url
 
 from apps.web.internal.db import DB
-from apps.web.models.chats import Chat
+from apps.web.models.chats import Chats
 
 
 ####################
@@ -115,7 +115,7 @@ class UsersTable:
     def delete_user_by_id(self, id: str) -> bool:
         try:
             # Delete User Chats
-            result = Chat.delete_chats_by_user_id(id)
+            result = Chats.delete_chats_by_user_id(id)
 
             if result:
                 # Delete User

+ 4 - 2
backend/apps/web/routers/users.py

@@ -9,6 +9,8 @@ import time
 import uuid
 
 from apps.web.models.users import UserModel, UserRoleUpdateForm, Users
+from apps.web.models.auths import Auths
+
 
 from utils.utils import (
     get_password_hash,
@@ -76,7 +78,7 @@ async def update_user_role(form_data: UserRoleUpdateForm, cred=Depends(bearer_sc
 
 
 ############################
-# DeleteUser
+# DeleteUserById
 ############################
 
 
@@ -88,7 +90,7 @@ async def delete_user_by_id(user_id: str, cred=Depends(bearer_scheme)):
     if user:
         if user.role == "admin":
             if user.id != user_id:
-                result = Users.delete_user_by_id(user_id)
+                result = Auths.delete_auth_by_id(user_id)
 
                 if result:
                     return True