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

31 lines
844 B
Rust
Raw Normal View History

use axum::{extract::State, Json};
use crate::{
error::AppError,
handlers::actions::{ConfirmActionRequest, ConfirmActionResponse},
services::action_confirmation::ActionConfirmationService,
state::AppState,
};
pub async fn confirm_action(
State(state): State<AppState>,
Json(request): Json<ConfirmActionRequest>,
) -> Result<Json<ConfirmActionResponse>, AppError> {
if request.conversation_id.is_empty() {
return Err(AppError::BadRequest("conversation_id is required".to_string()));
}
if request.action.is_empty() {
return Err(AppError::BadRequest("action is required".to_string()));
}
let user_id = request.conversation_id.clone();
let response = state
.action_confirmation_service
.confirm_action(request, &user_id)
.await?;
Ok(Json(response))
}