feat(scan_router): removed user data; added filter

This commit is contained in:
2025-01-24 12:05:32 +01:00
parent 3a142b919b
commit 17291ee082

View File

@ -1,3 +1,5 @@
import json
from fastapi import APIRouter, Depends, Query from fastapi import APIRouter, Depends, Query
from bec_atlas.authentication import get_current_user from bec_atlas.authentication import get_current_user
@ -31,7 +33,7 @@ class ScanRouter(BaseRouter):
async def scans( async def scans(
self, self,
session_id: str, session_id: str,
include_user_data: bool = False, filter: str | None = None,
fields: list[str] = Query(default=None), fields: list[str] = Query(default=None),
offset: int = 0, offset: int = 0,
limit: int = 100, limit: int = 100,
@ -45,26 +47,15 @@ class ScanRouter(BaseRouter):
""" """
if fields: if fields:
fields = {field: 1 for field in fields} fields = {field: 1 for field in fields}
if include_user_data:
include = [{"$match": {"session_id": session_id}}] filters = {"session_id": session_id}
if fields: if filter:
include.append({"$project": fields}) filter = json.loads(filter)
include += [ filters.update(filter)
{"$skip": offset},
{"$limit": limit},
{
"$lookup": {
"from": "scan_user_data",
"let": {"_id": "$_id"},
"pipeline": [{"$match": {"$expr": {"$eq": ["$_id", "$$_id"]}}}],
"as": "user_data",
}
},
]
return self.db.aggregate("scans", include, ScanStatusPartial, user=current_user)
return self.db.find( return self.db.find(
"scans", "scans",
{"session_id": session_id}, filters,
ScanStatusPartial, ScanStatusPartial,
limit=limit, limit=limit,
offset=offset, offset=offset,