fix: concurrent calls in admin page to api and db

This commit is contained in:
Per Stark
2025-06-19 15:43:31 +02:00
parent 9a23c1ea1b
commit f2bafe0205

View File

@@ -39,27 +39,31 @@ pub async fn show_admin_panel(
State(state): State<HtmlState>, State(state): State<HtmlState>,
RequireUser(user): RequireUser, RequireUser(user): RequireUser,
) -> Result<impl IntoResponse, HtmlError> { ) -> Result<impl IntoResponse, HtmlError> {
let settings = SystemSettings::get_current(&state.db).await?; let (
let analytics = Analytics::get_current(&state.db).await?; settings_res,
let users_count = Analytics::get_users_amount(&state.db).await?; analytics_res,
let conversation_archive = User::get_user_conversations(&user.id, &state.db).await?; user_count_res,
let available_models = state conversation_archive_res,
.openai_client available_models_res,
.models() ) = tokio::join!(
.list() SystemSettings::get_current(&state.db),
.await Analytics::get_current(&state.db),
.map_err(|e| AppError::InternalError(e.to_string()))?; Analytics::get_users_amount(&state.db),
User::get_user_conversations(&user.id, &state.db),
async { state.openai_client.models().list().await }
);
Ok(TemplateResponse::new_template( Ok(TemplateResponse::new_template(
"admin/base.html", "admin/base.html",
AdminPanelData { AdminPanelData {
user, user,
settings, settings: settings_res?,
analytics, analytics: analytics_res?,
available_models, available_models: available_models_res
users: users_count, .map_err(|e| AppError::InternalError(e.to_string()))?,
users: user_count_res?,
default_query_prompt: DEFAULT_QUERY_SYSTEM_PROMPT.to_string(), default_query_prompt: DEFAULT_QUERY_SYSTEM_PROMPT.to_string(),
conversation_archive, conversation_archive: conversation_archive_res?,
}, },
)) ))
} }