mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-22 23:31:12 +02:00
feat: move endpoint above to retrieve watched folders based on search space ID
This commit is contained in:
parent
25358fddcf
commit
f0a7c7134a
1 changed files with 31 additions and 29 deletions
|
|
@ -953,6 +953,37 @@ async def get_document_by_chunk_id(
|
||||||
) from e
|
) from e
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/documents/watched-folders", response_model=list["FolderRead"])
|
||||||
|
async def get_watched_folders(
|
||||||
|
search_space_id: int,
|
||||||
|
session: AsyncSession = Depends(get_async_session),
|
||||||
|
user: User = Depends(current_active_user),
|
||||||
|
):
|
||||||
|
"""Return root folders that are marked as watched (metadata->>'watched' = 'true')."""
|
||||||
|
from app.schemas import FolderRead # noqa: F811
|
||||||
|
|
||||||
|
await check_permission(
|
||||||
|
session,
|
||||||
|
user,
|
||||||
|
search_space_id,
|
||||||
|
Permission.DOCUMENTS_READ.value,
|
||||||
|
"You don't have permission to read documents in this search space",
|
||||||
|
)
|
||||||
|
|
||||||
|
folders = (
|
||||||
|
await session.execute(
|
||||||
|
select(Folder).where(
|
||||||
|
Folder.search_space_id == search_space_id,
|
||||||
|
Folder.parent_id.is_(None),
|
||||||
|
Folder.folder_metadata.isnot(None),
|
||||||
|
Folder.folder_metadata["watched"].astext == "true",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).scalars().all()
|
||||||
|
|
||||||
|
return folders
|
||||||
|
|
||||||
|
|
||||||
@router.get("/documents/{document_id}", response_model=DocumentRead)
|
@router.get("/documents/{document_id}", response_model=DocumentRead)
|
||||||
async def read_document(
|
async def read_document(
|
||||||
document_id: int,
|
document_id: int,
|
||||||
|
|
@ -1416,32 +1447,3 @@ async def folder_index_file(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.get("/documents/watched-folders", response_model=list["FolderRead"])
|
|
||||||
async def get_watched_folders(
|
|
||||||
search_space_id: int,
|
|
||||||
session: AsyncSession = Depends(get_async_session),
|
|
||||||
user: User = Depends(current_active_user),
|
|
||||||
):
|
|
||||||
"""Return root folders that are marked as watched (metadata->>'watched' = 'true')."""
|
|
||||||
from app.schemas import FolderRead # noqa: F811
|
|
||||||
|
|
||||||
await check_permission(
|
|
||||||
session,
|
|
||||||
user,
|
|
||||||
search_space_id,
|
|
||||||
Permission.DOCUMENTS_READ.value,
|
|
||||||
"You don't have permission to read documents in this search space",
|
|
||||||
)
|
|
||||||
|
|
||||||
folders = (
|
|
||||||
await session.execute(
|
|
||||||
select(Folder).where(
|
|
||||||
Folder.search_space_id == search_space_id,
|
|
||||||
Folder.parent_id.is_(None),
|
|
||||||
Folder.folder_metadata.isnot(None),
|
|
||||||
Folder.folder_metadata["watched"].astext == "true",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
).scalars().all()
|
|
||||||
|
|
||||||
return folders
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue