use axum::extract::State; use axum::Json; use application::state::AppState; use domain::models::todo::Todo; use domain::services::todo::TodoService; use crate::models::error::HttpError; use crate::models::response::HttpGetOneResponse; use crate::models::todo::HttpCreateTodoRequest; /// Create a new [Todo]. /// /// # Responses /// /// - 201 Created: the [Todo] was successfully created. /// - 422 Unprocessable entity: An [Todo] with the same name already exists. pub async fn create( State(state): State>, Json(req): Json, ) -> Result, HttpError> { state.todo_service .create(req.into()) .await .map_err(|e| e.into()) .map(|todo: Todo| todo.into()) }