Admins basket details

This commit is contained in:
phil 2024-02-13 19:08:06 +05:30
parent c1f229f805
commit b00bf1f9f9
3 changed files with 94 additions and 47 deletions

View file

@ -1,8 +1,8 @@
import logging
from fastapi import Depends, FastAPI, HTTPException, status, responses
from gisaf.models.admin import Basket, BasketNameOnly
from gisaf.models.admin import AdminBasket, BasketNameOnly
from gisaf.models.authentication import User
from gisaf.security import get_current_active_user
from gisaf.admin import manager
@ -21,3 +21,20 @@ async def get_baskets(
BasketNameOnly(name=name)
for name, basket in (await manager.baskets_for_role(user)).items()
]
@api.get('/basket/{name}')
async def get_basket(
name: str,
user: User = Depends(get_current_active_user),
) -> AdminBasket:
basket = manager.baskets[name]
if basket.role and not user.has_role(basket.role):
raise HTTPException(status.HTTP_401_UNAUTHORIZED)
return AdminBasket(
name=name,
files=await basket.get_files(),
columns=basket.columns,
uploadFields=basket.upload_fields,
## TODO: Fix projects
# projects=getattr(basket, 'projects', None)
)