diff --git a/backend/app.py b/backend/app.py index 43ea8bd..702fbcc 100644 --- a/backend/app.py +++ b/backend/app.py @@ -77,7 +77,7 @@ async def find_guest(party: str, token: str) -> DBGuest: class Party(MongoModel): name: str created: datetime - allowed_extra: list[str] + allowed_extra: dict[str, int] async def find_party(name: str) -> Party: @@ -88,7 +88,10 @@ async def find_party(name: str) -> Party: def validate_extra(extra: dict[str, str], party: Party): - return all(k in party.allowed_extra and len(v) <= 64 for (k, v) in extra.items()) + return all( + k in party.allowed_extra and len(v) <= party.allowed_extra[k] + for (k, v) in extra.items() + ) # Guest methods @@ -188,7 +191,7 @@ async def list_parties(_=Depends(auth_admin)): class PartyCreate(BaseModel): name: str - allowed_extra: list[str] = [] + allowed_extra: dict[str, int] = dict() @app.post( @@ -269,7 +272,7 @@ async def create_new_guest(party: str, new_guest: GuestCreate, _=Depends(auth_ad @app.get( "/{admin_token}/{party}/userAllowedExtra", - response_model=list[str], + response_model=dict[str, int], responses=error_responses(401, 404), tags=["admin"], ) @@ -284,7 +287,9 @@ async def get_allowed_extra_keys(party: str, _=Depends(auth_admin)): responses=error_responses(401, 404), tags=["admin"], ) -async def modify_allowed_extra_keys(party: str, keys: list[str], _=Depends(auth_admin)): +async def modify_allowed_extra_keys( + party: str, keys: dict[str, int], _=Depends(auth_admin) +): party_obj = await find_party(party) party_dict = party_obj.dict(exclude={"id"}) party_dict["allowed_extra"] = keys