Wire dashboard context into Hearthkeeper
This commit is contained in:
30
app/main.py
30
app/main.py
@@ -1,7 +1,6 @@
|
||||
"""FastAPI main application."""
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
import secrets
|
||||
from contextlib import suppress
|
||||
from pydantic import BaseModel, Field
|
||||
@@ -210,26 +209,7 @@ async def test_loop_inactivity(
|
||||
|
||||
def serialize_dashboard(dashboard) -> dict:
|
||||
"""Serialize a dashboard database model into an API response."""
|
||||
session_goals = []
|
||||
if dashboard.session_goals:
|
||||
try:
|
||||
session_goals = json.loads(dashboard.session_goals)
|
||||
except json.JSONDecodeError:
|
||||
session_goals = []
|
||||
|
||||
return {
|
||||
"session_id": dashboard.session_id,
|
||||
"raw_markdown": dashboard.raw_markdown,
|
||||
"stream_title": dashboard.stream_title,
|
||||
"game": dashboard.game,
|
||||
"mood": dashboard.mood,
|
||||
"go_live_notification": dashboard.go_live_notification,
|
||||
"social_post": dashboard.social_post,
|
||||
"session_goals": session_goals,
|
||||
"content_angle": dashboard.content_angle,
|
||||
"created_at": dashboard.created_at.isoformat(),
|
||||
"updated_at": dashboard.updated_at.isoformat(),
|
||||
}
|
||||
return Repository.serialize_dashboard(dashboard)
|
||||
|
||||
|
||||
@app.post("/admin/session/dashboard", dependencies=[Depends(require_admin)])
|
||||
@@ -253,6 +233,14 @@ async def save_session_dashboard(request: DashboardRequest) -> dict:
|
||||
content_angle=request.content_angle,
|
||||
)
|
||||
|
||||
if orchestrator and request.session_id in orchestrator.active_sessions:
|
||||
orchestrator.active_sessions[request.session_id]["dashboard"] = (
|
||||
serialize_dashboard(dashboard)
|
||||
)
|
||||
orchestrator.active_sessions[request.session_id]["theme"] = (
|
||||
request.content_angle or request.stream_title
|
||||
)
|
||||
|
||||
return {
|
||||
"status": "dashboard_saved",
|
||||
"dashboard": serialize_dashboard(dashboard),
|
||||
|
||||
Reference in New Issue
Block a user