User filter
Build and Push Docker Image / build-and-push (push) Successful in 19s

This commit is contained in:
ciomek committed 2026-09-04 18:03:21 +02:00
1 parent 655fb89a7f
commit 5f0e8c11b4
1 file changed
+32 -1
+32 -1
View File
@@ -1,4 +1,4 @@
from fastapi import APIRouter from fastapi import APIRouter, HTTPException
from sqlalchemy.orm import selectinload from sqlalchemy.orm import selectinload
from sqlmodel import Session, select from sqlmodel import Session, select
from starlette.requests import Request from starlette.requests import Request
@@ -52,3 +52,34 @@ async def list_users(request: Request):
.order_by(User.internal_username) .order_by(User.internal_username)
) )
return session.exec(statement).all() return session.exec(statement).all()
@router.get("/users/{internal_username}", response_model=UserPublic)
@admin
async def get_user(request: Request, internal_username: str):
with Session(engine) as session:
statement = (
select(User)
.where(User.internal_username == internal_username)
.options(selectinload(User.minecraft_user))
)
user = session.exec(statement).first()
if user is None:
raise HTTPException(status_code=404)
return user
@router.get("/users/by-uuid/{uuid}", response_model=UserPublic)
@admin
async def get_user_by_uuid(request: Request, uuid: str):
with Session(engine) as session:
statement = (
select(User)
.join(MinecraftUser)
.where(MinecraftUser.uuid == uuid)
.options(selectinload(User.minecraft_user))
)
user = session.exec(statement).first()
if user is None:
raise HTTPException(status_code=404)
return user