21 lines
693 B
Python
21 lines
693 B
Python
|
|
from fastapi import APIRouter, HTTPException
|
||
|
|
from sqlalchemy import select
|
||
|
|
|
||
|
|
from app.api.deps import DbSession
|
||
|
|
from app.models import StaticContent
|
||
|
|
from app.schemas import StaticContentResponse
|
||
|
|
|
||
|
|
router = APIRouter(prefix="/content", tags=["content"])
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/{key}", response_model=StaticContentResponse)
|
||
|
|
async def get_public_content(key: str, db: DbSession):
|
||
|
|
"""Get public static content by key. No authentication required."""
|
||
|
|
result = await db.execute(
|
||
|
|
select(StaticContent).where(StaticContent.key == key)
|
||
|
|
)
|
||
|
|
content = result.scalar_one_or_none()
|
||
|
|
if not content:
|
||
|
|
raise HTTPException(status_code=404, detail="Content not found")
|
||
|
|
return content
|