2024-12-17 00:47:21 +01:00

49 lines
1.4 KiB
Rust

mod routes;
#[cfg(feature = "task12")]
use routes::{board, place, random_board, reset, Board};
use routes::{decode, unwrap, wrap};
#[cfg(feature = "task1-9")]
use routes::{
hello_bird, hello_world, ipv4_dest, ipv4_key, ipv6_dest, ipv6_key, manifest, milk, minus_one,
refill, MilkFactory,
};
#[allow(unused_imports)]
pub fn router() -> axum::Router {
use axum::{
routing::{get, post},
Router,
};
#[cfg(feature = "task1-9")]
let milk_factory = MilkFactory::new();
#[cfg(feature = "task1-9")]
return Router::new()
.route("/hello_world", get(hello_world))
.route("/-1/seek", get(minus_one))
.route("/2/dest", get(ipv4_dest))
.route("/2/key", get(ipv4_key))
.route("/2/v6/dest", get(ipv6_dest))
.route("/2/v6/key", get(ipv6_key))
.route("/5/manifest", post(manifest))
.route("/9/milk", post(milk))
.route("/9/refill", post(refill))
.with_state(milk_factory)
.route("/", get(hello_bird));
#[cfg(feature = "task12")]
Router::new()
.route("/12/board", get(board))
.route("/12/reset", post(reset))
.route("/12/place/:team/:column", post(place))
.route("/12/random-board", get(random_board))
.with_state(Board::new());
Router::new()
.route("/16/wrap", post(wrap))
.route("/16/unwrap", get(unwrap))
.route("/16/decode", post(decode))
}