hive-c0re: annotate remaining dashboard routes with utoipa
This commit is contained in:
parent
8ebefeb0d5
commit
582ebe5eee
21 changed files with 738 additions and 45 deletions
|
|
@ -16,6 +16,7 @@ use axum::{
|
|||
response::{IntoResponse, Response},
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
use problem_details::ProblemDetails;
|
||||
|
||||
|
|
@ -31,7 +32,7 @@ use crate::job_queue::{Source, submit};
|
|||
/// `--root` flag for safety; the HTTP surface is permissive
|
||||
/// because the dashboard form encodes "no value" as the empty
|
||||
/// string for the optional radio-group input.)
|
||||
#[derive(Deserialize)]
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
pub(super) struct SetParentForm {
|
||||
child: String,
|
||||
new_parent: Option<String>,
|
||||
|
|
@ -39,7 +40,7 @@ pub(super) struct SetParentForm {
|
|||
|
||||
/// One entry in a `POST /api/topology/set-parent-bulk` JSON array.
|
||||
/// `new_parent`: absent/null/empty-string all mean "promote to root".
|
||||
#[derive(Deserialize)]
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
pub(super) struct SetParentBulkEntry {
|
||||
child: String,
|
||||
#[serde(default)]
|
||||
|
|
@ -56,6 +57,15 @@ pub(super) struct SetParentBulkEntry {
|
|||
/// re-emits the queue snapshot immediately so the dashboard shows the
|
||||
/// queued move without a refresh; the tree itself repaints once the
|
||||
/// commit lands.
|
||||
#[utoipa::path(
|
||||
post,
|
||||
path = "/api/topology/set-parent",
|
||||
responses(
|
||||
(status = 200, description = "reparent queued", body = String),
|
||||
(status = 400, description = "missing/invalid child or new_parent identifier"),
|
||||
),
|
||||
tag = "topology"
|
||||
)]
|
||||
pub(super) async fn post_set_parent(
|
||||
State(state): State<AppState>,
|
||||
Form(form): Form<SetParentForm>,
|
||||
|
|
@ -98,6 +108,15 @@ pub(super) async fn post_set_parent(
|
|||
/// First identifier that fails to parse aborts the whole batch before
|
||||
/// anything is submitted — a partially-invalid bulk move never reaches
|
||||
/// the queue.
|
||||
#[utoipa::path(
|
||||
post,
|
||||
path = "/api/topology/set-parent-bulk",
|
||||
responses(
|
||||
(status = 200, description = "reparents queued", body = String),
|
||||
(status = 400, description = "an invalid child identifier in the batch"),
|
||||
),
|
||||
tag = "topology"
|
||||
)]
|
||||
pub(super) async fn post_set_parent_bulk(
|
||||
State(state): State<AppState>,
|
||||
axum::Json(body): axum::Json<Vec<SetParentBulkEntry>>,
|
||||
|
|
|
|||
Loading…
Reference in a new issue