aboutsummaryrefslogtreecommitdiffstats
path: root/crates/configuration/src/server/http_svc/routes.rs
blob: 64fc4c38efb3636cf58536865897cb0c57f37f99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
mod routing;
mod rule;
mod typology;

use utoipa_axum::{router::OpenApiRouter, routes};

use crate::state::AppHandle;

pub fn router(store: AppHandle) -> OpenApiRouter {
    OpenApiRouter::new()
        .routes(routes!(
            /* routing */
            routing::get_active::active_routing,
            routing::post_routing::post_routing,
            routing::delete_routing::delete,
            routing::replace_routing::replace,
        ))
        .routes(routes!(
            /* rule */
            rule::create::create_rule,
            rule::update::update_rule_config,
            rule::delete::delete_rule_config,
            rule::get::get_rule,
        ))
        .routes(routes!(
            /* typology */
            typology::get_typology::get_typology,
            typology::post_typology::update,
            typology::delete_typology::delete_typology,
            typology::create_typology::create_typology,
        ))
        .with_state(store)
}

#[cfg(test)]
pub(crate) fn test_config() -> warden_stack::Configuration {
    use warden_stack::Configuration;

    let config_path = "warden-config.toml";

    let config = config::Config::builder()
        .add_source(config::File::new(config_path, config::FileFormat::Toml))
        .build()
        .unwrap();

    config.try_deserialize::<Configuration>().unwrap()
}