diff options
| author | soryu <soryu@soryu.co> | 2026-02-03 23:49:08 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-03 23:49:19 +0000 |
| commit | c732dd048128808cd9f67f6e1176a5b565df5678 (patch) | |
| tree | 6ebf359c9c3f2d8aca264c53da6367b7f0af5fc8 /makima/src/server/mod.rs | |
| parent | 9ebc9724afcc0482a8e7cd2369c06208fedbcbd1 (diff) | |
| download | soryu-c732dd048128808cd9f67f6e1176a5b565df5678.tar.gz soryu-c732dd048128808cd9f67f6e1176a5b565df5678.zip | |
Allow chain creation via web interface
Diffstat (limited to 'makima/src/server/mod.rs')
| -rw-r--r-- | makima/src/server/mod.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/makima/src/server/mod.rs b/makima/src/server/mod.rs index 553797f..5dde099 100644 --- a/makima/src/server/mod.rs +++ b/makima/src/server/mod.rs @@ -9,7 +9,7 @@ pub mod state; use axum::{ http::StatusCode, response::IntoResponse, - routing::{get, post}, + routing::{get, post, put}, Json, Router, }; use serde::Serialize; @@ -229,6 +229,22 @@ pub fn make_router(state: SharedState) -> Router { .route("/chains/{id}/graph", get(chains::get_chain_graph)) .route("/chains/{id}/events", get(chains::get_chain_events)) .route("/chains/{id}/editor", get(chains::get_chain_editor)) + // Chain contract definitions + .route( + "/chains/{id}/definitions", + get(chains::list_chain_definitions).post(chains::create_chain_definition), + ) + .route( + "/chains/{chain_id}/definitions/{definition_id}", + put(chains::update_chain_definition).delete(chains::delete_chain_definition), + ) + .route( + "/chains/{id}/definitions/graph", + get(chains::get_chain_definition_graph), + ) + // Chain control + .route("/chains/{id}/start", post(chains::start_chain)) + .route("/chains/{id}/stop", post(chains::stop_chain)) // Contract type templates (built-in only) .route("/contract-types", get(templates::list_contract_types)) // Settings endpoints |
