feat: add puzzle clear template runtime
This commit is contained in:
116
server-rs/crates/api-server/src/modules/puzzle_clear.rs
Normal file
116
server-rs/crates/api-server/src/modules/puzzle_clear.rs
Normal file
@@ -0,0 +1,116 @@
|
||||
use axum::{
|
||||
Router, middleware,
|
||||
routing::{get, post},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
auth::{require_bearer_auth, require_runtime_principal_auth},
|
||||
puzzle_clear::{
|
||||
advance_puzzle_clear_next_level, create_puzzle_clear_session, execute_puzzle_clear_action,
|
||||
get_puzzle_clear_gallery_detail, get_puzzle_clear_run, get_puzzle_clear_runtime_work,
|
||||
get_puzzle_clear_session, get_puzzle_clear_work, list_puzzle_clear_gallery,
|
||||
list_puzzle_clear_works, mark_puzzle_clear_level_time_up, publish_puzzle_clear_work,
|
||||
retry_puzzle_clear_level, start_puzzle_clear_run, swap_puzzle_clear_cards,
|
||||
},
|
||||
state::AppState,
|
||||
};
|
||||
|
||||
pub fn router(state: AppState) -> Router<AppState> {
|
||||
Router::new()
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/sessions",
|
||||
post(create_puzzle_clear_session).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/sessions/{session_id}",
|
||||
get(get_puzzle_clear_session).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/sessions/{session_id}/actions",
|
||||
post(execute_puzzle_clear_action).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/works",
|
||||
get(list_puzzle_clear_works).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/works/{profile_id}",
|
||||
get(get_puzzle_clear_work).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/creation/puzzle-clear/works/{profile_id}/publish",
|
||||
post(publish_puzzle_clear_work).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_bearer_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/works/{profile_id}",
|
||||
get(get_puzzle_clear_runtime_work),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs",
|
||||
post(start_puzzle_clear_run).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs/{run_id}",
|
||||
get(get_puzzle_clear_run).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs/{run_id}/swap",
|
||||
post(swap_puzzle_clear_cards).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs/{run_id}/retry-level",
|
||||
post(retry_puzzle_clear_level).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs/{run_id}/next-level",
|
||||
post(advance_puzzle_clear_next_level).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/runs/{run_id}/time-up",
|
||||
post(mark_puzzle_clear_level_time_up).route_layer(middleware::from_fn_with_state(
|
||||
state.clone(),
|
||||
require_runtime_principal_auth,
|
||||
)),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/gallery",
|
||||
get(list_puzzle_clear_gallery),
|
||||
)
|
||||
.route(
|
||||
"/api/runtime/puzzle-clear/gallery/{public_work_code}",
|
||||
get(get_puzzle_clear_gallery_detail),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user