Skip to content

Commit eb2f69b

Browse files
authored
Merge pull request #91 from zecrypt-io/akhil/drive/apis
folders list
2 parents acda20d + 0058080 commit eb2f69b

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from fastapi import APIRouter
22
from app.api.v1.web.drive.folders import api as folders_router
3+
from app.api.v1.web.drive.files import api as files_router
34

45

56
router = APIRouter()
67

78
router.prefix = "/drive"
89

9-
router.include_router(folders_router.router, tags=["Drive: Folders"])
10+
router.include_router(folders_router.router, tags=["Drive: Folders"])
11+
router.include_router(files_router.router, tags=["Drive: Files"])

packages/backend-server/app/api/v1/web/drive/folders/api.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from fastapi import APIRouter,Depends
1+
from fastapi import APIRouter,Depends,Query
22
from app.api.v1.web.drive.folders.schema import CreateFolder, RenameFolder, MoveFolder, DeleteFolders
33
from app.api.v1.web.auth.schema import UserDetails
44
from app.framework.permission_services.service import get_current_user
5-
from app.api.v1.web.drive.folders.services import create_folder,delete_folders,rename_folder, move_folders
5+
from app.api.v1.web.drive.folders.services import create_folder,delete_folders,rename_folder, move_folders, get_folders_list
66

77
FOLDER_URL ="/folder"
88
router = APIRouter()
@@ -26,3 +26,7 @@ async def rename_folder_api(payload: RenameFolder, user: UserDetails = Depends(g
2626
async def move_folder_api(payload: MoveFolder, user: UserDetails = Depends(get_current_user)):
2727
return await move_folders(user, payload.model_dump())
2828

29+
30+
@router.get(FOLDER_URL+"/list")
31+
async def get_all_folders_api(parent_id: str = Query(None, description="Parent folder ID", ge=1), user: UserDetails = Depends(get_current_user)):
32+
return await get_folders_list(user, parent_id)

packages/backend-server/app/api/v1/web/drive/folders/services.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,22 @@ async def move_folders(user, payload):
7373
db_manager.update_many(db, FOLDERS, {"doc_id": {"$in":folder_ids}, "created_by": user.get("user_id")}, {"$set": {"parent_id": parent_id}})
7474
return response_helper(200, translate("drive.folders.moved"), folders_moved=folders_moved)
7575

76+
async def get_folders_list(user, parent_id):
77+
db = user.get("db")
78+
query = {"created_by": user.get("user_id")}
79+
if parent_id:
80+
query["parent_id"] = parent_id
81+
82+
folders = db_manager.find(db, FOLDERS, query)
83+
84+
for folder in folders:
85+
parent_query={"parent_id": folder.get("doc_id"),"created_by": user.get("user_id")}
86+
files = db_manager.find(db, FILES,parent_query )
87+
folder["files"] = files
88+
folder["sub_folders"] = db_manager.find(db, FOLDERS, parent_query)
89+
90+
data= {
91+
"folders": folders,
92+
"files": db_manager.find(db, FILES, query)
93+
}
94+
return response_helper(200, translate("drive.folders.list"), data=data)

0 commit comments

Comments
 (0)