perf: consolidate initial navigation loading
ci / docker (push) Successful in 3m46s

This commit is contained in:
2026-09-05 20:29:47 +08:00
parent 05ab768a3b
commit 27432fa2e2
4 changed files with 79 additions and 1 deletions
+25
View File
@@ -173,6 +173,31 @@ async def me(user: User = Depends(current_user)):
return user
@app.get("/api/v1/bootstrap")
async def bootstrap_data(user: User = Depends(current_user), db: AsyncSession = Depends(get_db)):
folders = list((await db.scalars(
select(Folder)
.where(Folder.user_id == user.id, Folder.deleted_at.is_(None))
.order_by(Folder.position, Folder.created_at)
)).all())
lists = list((await db.scalars(
select(TaskList)
.where(TaskList.user_id == user.id, TaskList.deleted_at.is_(None))
.order_by(TaskList.is_inbox.desc(), TaskList.position, TaskList.created_at)
)).all())
tags = list((await db.scalars(
select(Tag).where(Tag.user_id == user.id).order_by(Tag.name, Tag.id)
)).all())
inbox = next((item for item in lists if item.is_inbox), None)
return {
"user": UserOut.model_validate(user),
"folders": [FolderOut.model_validate(item) for item in folders],
"lists": [ListOut.model_validate(item) for item in lists],
"tags": [TagOut.model_validate(item) for item in tags],
"inbox_id": inbox.id if inbox else None,
}
@app.post("/api/v1/auth/logout", status_code=204)
async def logout(
response: Response,