summaryrefslogtreecommitdiff
path: root/makima/src/server/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/server/mod.rs')
-rw-r--r--makima/src/server/mod.rs25
1 files changed, 24 insertions, 1 deletions
diff --git a/makima/src/server/mod.rs b/makima/src/server/mod.rs
index 59eff2e..dd79ddf 100644
--- a/makima/src/server/mod.rs
+++ b/makima/src/server/mod.rs
@@ -18,7 +18,7 @@ use tower_http::trace::TraceLayer;
use utoipa::OpenApi;
use utoipa_swagger_ui::SwaggerUi;
-use crate::server::handlers::{api_keys, chat, daemon_download, directives, file_ws, files, history, listen, mesh, mesh_chat, mesh_daemon, mesh_merge, mesh_supervisor, mesh_ws, orders, repository_history, speak, templates, users, versions};
+use crate::server::handlers::{api_keys, chat, daemon_download, directive_documents, directives, file_ws, files, history, listen, mesh, mesh_chat, mesh_daemon, mesh_merge, mesh_supervisor, mesh_ws, orders, repository_history, speak, templates, users, versions};
use crate::server::openapi::ApiDoc;
use crate::server::state::SharedState;
@@ -214,6 +214,29 @@ pub fn make_router(state: SharedState) -> Router {
)
.route("/directives/{id}/dogs/{dog_id}/orders", get(directives::list_dog_orders))
.route("/directives/{id}/dogs/{dog_id}/pick-up-orders", post(directives::pick_up_dog_orders))
+ // Directive document endpoints (multi-document directive contracts).
+ .route(
+ "/directives/{directive_id}/documents",
+ get(directive_documents::list_documents)
+ .post(directive_documents::create_document),
+ )
+ .route(
+ "/directive-documents/{document_id}",
+ get(directive_documents::get_document)
+ .patch(directive_documents::update_document),
+ )
+ .route(
+ "/directive-documents/{document_id}/ship",
+ post(directive_documents::ship_document),
+ )
+ .route(
+ "/directive-documents/{document_id}/archive",
+ post(directive_documents::archive_document),
+ )
+ .route(
+ "/directive-documents/{document_id}/tasks",
+ get(directive_documents::list_document_tasks),
+ )
// Order endpoints
.route(
"/orders",