nxtgauge-ai-assistant/src/handlers/chat.rs

30 lines
699 B
Rust
Raw Normal View History

use axum::{
extract::{Extension, State},
Json,
};
use crate::{
auth::AuthUser,
chat::models::{ChatMessageRequest, ChatMessageResponse},
error::AppError,
state::AppState,
};
pub async fn message(
State(state): State<AppState>,
Extension(auth_user): Extension<AuthUser>,
Json(request): Json<ChatMessageRequest>,
) -> Result<Json<ChatMessageResponse>, AppError> {
if request.message.trim().is_empty() {
return Err(AppError::BadRequest(
"message must not be empty".to_string(),
));
}
let response = state
.chat_orchestrator
.handle_chat(request, &auth_user.user_id)
.await?;
Ok(Json(response))
}