7dd53e95d8
统一推荐页各玩法正式 runtime 的游客鉴权透传。 收口推荐页首页展示队列和嵌入运行态切换队列。 补齐未登录读档、签名资产和个人数据读取的游客态处理。 新增运行态 HUD 小尺寸 logo 资源并更新拼图与抓鹅展示。 补充推荐切换、runtime guest 启动和客户端请求回归测试。 更新玩法链路、后端契约和团队记忆文档。
94 lines
3.2 KiB
Rust
94 lines
3.2 KiB
Rust
use axum::{
|
|
Router, middleware,
|
|
routing::{delete, get, post},
|
|
};
|
|
|
|
use crate::{
|
|
auth::{require_bearer_auth, require_runtime_principal_auth},
|
|
bark_battle::{
|
|
create_bark_battle_draft, delete_bark_battle_work, finish_bark_battle_run,
|
|
generate_bark_battle_image_asset, get_bark_battle_run, get_bark_battle_runtime_config,
|
|
list_bark_battle_gallery, list_bark_battle_works, publish_bark_battle_work,
|
|
start_bark_battle_run, update_bark_battle_draft_config,
|
|
},
|
|
state::AppState,
|
|
};
|
|
|
|
pub fn router(state: AppState) -> Router<AppState> {
|
|
Router::new()
|
|
.route(
|
|
"/api/creation/bark-battle/drafts",
|
|
post(create_bark_battle_draft).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/bark-battle/drafts/{draft_id}/config",
|
|
post(update_bark_battle_draft_config).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/bark-battle/images/generate",
|
|
post(generate_bark_battle_image_asset).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/creation/bark-battle/works/publish",
|
|
post(publish_bark_battle_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/works",
|
|
get(list_bark_battle_works).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/works/{work_id}",
|
|
delete(delete_bark_battle_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/gallery",
|
|
get(list_bark_battle_gallery),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/works/{work_id}/config",
|
|
get(get_bark_battle_runtime_config).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/works/{work_id}/runs",
|
|
post(start_bark_battle_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/runs/{run_id}",
|
|
get(get_bark_battle_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/bark-battle/runs/{run_id}/finish",
|
|
post(finish_bark_battle_run).route_layer(middleware::from_fn_with_state(
|
|
state,
|
|
require_runtime_principal_auth,
|
|
)),
|
|
)
|
|
}
|