Large update across server and web clients: regenerated/added many spacetime-client module bindings and input types (including new delete/work_delete input types and numerous procedure/reducer files), updates to server-rs API modules (bark_battle, jump_hop, wooden_fish, auth, module-runtime and shared contracts), and fixes in module-runtime behavior and domain logic. Frontend changes include new/updated components and tests (creative audio helpers, bark-battle/jump-hop/wooden-fish clients and views, unified generation pages, RPG entry views, and runtime shells), plus CSS and service updates. Documentation and operational notes updated (.hermes pitfalls and multiple PRD/docs) to cover daily-task refresh, banner asset fallback, recommend-key bug, and other platform behaviors. Tests and verification steps added/updated alongside these changes.
95 lines
3.3 KiB
Rust
95 lines
3.3 KiB
Rust
use axum::{
|
|
Router, middleware,
|
|
routing::{delete, get, post},
|
|
};
|
|
|
|
use crate::{
|
|
auth::{require_bearer_auth, require_runtime_principal_auth},
|
|
state::AppState,
|
|
wooden_fish::{
|
|
checkpoint_wooden_fish_run, create_wooden_fish_session, delete_wooden_fish_work,
|
|
execute_wooden_fish_action, finish_wooden_fish_run, get_wooden_fish_gallery_detail,
|
|
get_wooden_fish_runtime_work, get_wooden_fish_session, list_wooden_fish_gallery,
|
|
list_wooden_fish_works, publish_wooden_fish_work, start_wooden_fish_run,
|
|
},
|
|
};
|
|
|
|
pub fn router(state: AppState) -> Router<AppState> {
|
|
Router::new()
|
|
.route(
|
|
"/api/creation/wooden-fish/sessions",
|
|
post(create_wooden_fish_session).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/wooden-fish/sessions/{session_id}",
|
|
get(get_wooden_fish_session).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/wooden-fish/sessions/{session_id}/actions",
|
|
post(execute_wooden_fish_action).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/wooden-fish/works",
|
|
get(list_wooden_fish_works).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/wooden-fish/works/{profile_id}",
|
|
delete(delete_wooden_fish_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/wooden-fish/works/{profile_id}/publish",
|
|
post(publish_wooden_fish_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/works/{profile_id}",
|
|
get(get_wooden_fish_runtime_work),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/runs",
|
|
post(start_wooden_fish_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/runs/{run_id}/checkpoint",
|
|
post(checkpoint_wooden_fish_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/runs/{run_id}/finish",
|
|
post(finish_wooden_fish_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/gallery",
|
|
get(list_wooden_fish_gallery),
|
|
)
|
|
.route(
|
|
"/api/runtime/wooden-fish/gallery/{public_work_code}",
|
|
get(get_wooden_fish_gallery_detail),
|
|
)
|
|
}
|