Files
web/backend/services/main/routes/public_chat.py
T

32 lines
1.1 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from ..dependencies import get_current_user_allow_suspended, get_db
from ..models import PublicChatProfileResponse, User
from ..public_chat_config import load_public_chat_static_profile
router = APIRouter()
@router.get("/public-chat/profile", response_model=PublicChatProfileResponse)
def get_public_chat_profile(
current_user: User = Depends(get_current_user_allow_suspended),
db: Session = Depends(get_db),
):
"""Metadata for the instance public chat (title, bio, member count)."""
del current_user
try:
static_profile = load_public_chat_static_profile()
except (FileNotFoundError, ValueError, OSError) as exc:
raise HTTPException(status_code=500, detail="Public chat profile is not configured") from exc
member_count = db.query(User).filter(User.deleted.is_(False)).count()
bio = static_profile["bio"].strip() or None
return PublicChatProfileResponse(
id=static_profile["id"],
title=static_profile["title"],
bio=bio,
member_count=member_count,
)