Skip to content

Commit 220c567

Browse files
committed
UI
1 parent 49ba804 commit 220c567

2 files changed

Lines changed: 18 additions & 20 deletions

File tree

apps/backend/app/api/routes/analytics/api.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
from app.api.routes.analytics import services as analytics_svc
44
from app.api.routes.auth.services import get_current_uid
5+
from app.api.routes.workspaces.middleware import WorkspaceContext, get_workspace_ctx
56

67
router = APIRouter(prefix="/analytics", tags=["analytics"])
78

89

910
@router.get("/summary", summary="Dashboard analytics counts")
10-
async def dashboard_summary(uid: str = Depends(get_current_uid)):
11-
return await analytics_svc.get_dashboard_analytics(uid)
11+
async def dashboard_summary(ctx: WorkspaceContext = Depends(get_workspace_ctx)):
12+
return await analytics_svc.get_dashboard_analytics(ctx)
1213

1314

1415
@router.get("/top-tools", summary="Top tools by usage (global, cached 5 min)")

apps/backend/app/api/routes/analytics/services.py

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
PROJECTS,
1919
)
2020
from app.api.routes.analytics.schema import DashboardAnalyticsOut
21+
from app.api.routes.workspaces.middleware import WorkspaceContext, apply_legacy_or_filter
2122
from app.database import db_manager
2223

2324

@@ -59,13 +60,9 @@ async def get_activity_buckets(*, days: int = 7) -> list[dict]:
5960
return await db_manager.aggregate(AUDIT_LOG, pipeline)
6061

6162

62-
async def get_dashboard_analytics(uid: str) -> DashboardAnalyticsOut:
63-
base = {"created_by": uid}
64-
nosql_filter = {
65-
**base,
66-
"encryptedData": {"$exists": True},
67-
"iv": {"$exists": True},
68-
}
63+
async def get_dashboard_analytics(ctx: WorkspaceContext) -> DashboardAnalyticsOut:
64+
flt = lambda base=None: apply_legacy_or_filter(ctx, base or {}, user_field="created_by")
65+
nosql_filter = flt({"encryptedData": {"$exists": True}, "iv": {"$exists": True}})
6966
(
7067
task_stats,
7168
password_entries,
@@ -80,18 +77,18 @@ async def get_dashboard_analytics(uid: str) -> DashboardAnalyticsOut:
8077
json_docs,
8178
code_snippets,
8279
) = await asyncio.gather(
83-
task_svc.get_task_stats(uid=uid),
84-
db_manager.count_documents(PASSWORD_ENTRIES, base),
85-
db_manager.count_documents(BOOKMARKS, base),
86-
db_manager.count_documents(BOOKMARK_FOLDERS, base),
87-
db_manager.count_documents(PROJECTS, base),
80+
task_svc.get_task_stats(ctx=ctx),
81+
db_manager.count_documents(PASSWORD_ENTRIES, flt()),
82+
db_manager.count_documents(BOOKMARKS, flt()),
83+
db_manager.count_documents(BOOKMARK_FOLDERS, flt()),
84+
db_manager.count_documents(PROJECTS, flt()),
8885
db_manager.count_documents(NOSQL_CONNECTIONS, nosql_filter),
89-
db_manager.count_documents(NOTES, base),
90-
db_manager.count_documents(API_CLIENT_COLLECTIONS, base),
91-
db_manager.count_documents(API_CLIENT_ENVIRONMENTS, base),
92-
db_manager.count_documents(API_CLIENT_HISTORY, base),
93-
db_manager.count_documents(JSON_FORMATTER_DOCUMENTS, base),
94-
db_manager.count_documents(CODE_SNIPPETS, base),
86+
db_manager.count_documents(NOTES, flt()),
87+
db_manager.count_documents(API_CLIENT_COLLECTIONS, flt()),
88+
db_manager.count_documents(API_CLIENT_ENVIRONMENTS, flt()),
89+
db_manager.count_documents(API_CLIENT_HISTORY, flt()),
90+
db_manager.count_documents(JSON_FORMATTER_DOCUMENTS, flt()),
91+
db_manager.count_documents(CODE_SNIPPETS, flt()),
9592
)
9693

9794
return DashboardAnalyticsOut(

0 commit comments

Comments
 (0)