use axum::{ Router, middleware, routing::{get, post}, }; use crate::{ auth::require_bearer_auth, bark_battle::{ create_bark_battle_draft, 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 { 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/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_bearer_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_bearer_auth, )), ) .route( "/api/runtime/bark-battle/runs/{run_id}", get(get_bark_battle_run).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) .route( "/api/runtime/bark-battle/runs/{run_id}/finish", post(finish_bark_battle_run) .route_layer(middleware::from_fn_with_state(state, require_bearer_auth)), ) }