31 lines
844 B
Rust
31 lines
844 B
Rust
|
|
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))
|
||
|
|
}
|