use crate::core::state::AppState; use crate::domain::dto::server_item_order::ReorderServerItemRequest; use crate::domain::events::server_tree::ServerTreeInvalidatedEvent; use crate::http::context::CurrentUser; use crate::http::error::HTTPError; use axum::http::StatusCode; use axum::{Json, extract::State}; #[utoipa::path( put, path = "/server-item-orders/reorder", request_body = ReorderServerItemRequest, responses((status = 204, description = "Ordre mis à jour")), tag = "Server item orders", security(("bearerAuth" = [])) )] pub async fn reorder( _user: CurrentUser, State(state): State, Json(payload): Json, ) -> Result { let server_id = payload.server_id; state .repositories .server .get_by_id(server_id) .await? .ok_or(HTTPError::NotFound)?; state.services.server_order.reorder(payload).await?; state.event_bus.emit(ServerTreeInvalidatedEvent { server_id, user_ids: None, }); Ok(StatusCode::NO_CONTENT) }