mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 04:15:25 +00:00
refac
This commit is contained in:
parent
bd2819a96a
commit
6497b46a78
2 changed files with 12 additions and 18 deletions
|
|
@ -251,18 +251,15 @@ class FolderTable:
|
||||||
log.error(f"update_folder: {e}")
|
log.error(f"update_folder: {e}")
|
||||||
return
|
return
|
||||||
|
|
||||||
def delete_folder_by_id_and_user_id(
|
def delete_folder_by_id_and_user_id(self, id: str, user_id: str) -> list[str]:
|
||||||
self, id: str, user_id: str, delete_chats=True
|
|
||||||
) -> bool:
|
|
||||||
try:
|
try:
|
||||||
|
folder_ids = []
|
||||||
with get_db() as db:
|
with get_db() as db:
|
||||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||||
if not folder:
|
if not folder:
|
||||||
return False
|
return folder_ids
|
||||||
|
|
||||||
if delete_chats:
|
folder_ids.append(folder.id)
|
||||||
# Delete all chats in the folder
|
|
||||||
Chats.delete_chats_by_user_id_and_folder_id(user_id, folder.id)
|
|
||||||
|
|
||||||
# Delete all children folders
|
# Delete all children folders
|
||||||
def delete_children(folder):
|
def delete_children(folder):
|
||||||
|
|
@ -270,12 +267,9 @@ class FolderTable:
|
||||||
folder.id, user_id
|
folder.id, user_id
|
||||||
)
|
)
|
||||||
for folder_child in folder_children:
|
for folder_child in folder_children:
|
||||||
if delete_chats:
|
|
||||||
Chats.delete_chats_by_user_id_and_folder_id(
|
|
||||||
user_id, folder_child.id
|
|
||||||
)
|
|
||||||
|
|
||||||
delete_children(folder_child)
|
delete_children(folder_child)
|
||||||
|
folder_ids.append(folder_child.id)
|
||||||
|
|
||||||
folder = db.query(Folder).filter_by(id=folder_child.id).first()
|
folder = db.query(Folder).filter_by(id=folder_child.id).first()
|
||||||
db.delete(folder)
|
db.delete(folder)
|
||||||
|
|
@ -284,10 +278,10 @@ class FolderTable:
|
||||||
delete_children(folder)
|
delete_children(folder)
|
||||||
db.delete(folder)
|
db.delete(folder)
|
||||||
db.commit()
|
db.commit()
|
||||||
return True
|
return folder_ids
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error(f"delete_folder: {e}")
|
log.error(f"delete_folder: {e}")
|
||||||
return False
|
return []
|
||||||
|
|
||||||
|
|
||||||
Folders = FolderTable()
|
Folders = FolderTable()
|
||||||
|
|
|
||||||
|
|
@ -244,11 +244,11 @@ async def delete_folder_by_id(
|
||||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||||
if folder:
|
if folder:
|
||||||
try:
|
try:
|
||||||
result = Folders.delete_folder_by_id_and_user_id(id, user.id)
|
folder_ids = Folders.delete_folder_by_id_and_user_id(id, user.id)
|
||||||
if result:
|
for folder_id in folder_ids:
|
||||||
return result
|
Chats.delete_chats_by_user_id_and_folder_id(user.id, folder_id)
|
||||||
else:
|
|
||||||
raise Exception("Error deleting folder")
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.exception(e)
|
log.exception(e)
|
||||||
log.error(f"Error deleting folder: {id}")
|
log.error(f"Error deleting folder: {id}")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue