summaryrefslogtreecommitdiffstats
path: root/src/server.rs
blob: 7ed3f8771a9d64560a84578904af20b5da0b0404 (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
use activitypub_federation::config::{FederationConfig, FederationMiddleware};
use axum::{Router, routing::get};
use tower_http::trace::TraceLayer;

use crate::{server::routes::health_check, state::AppHandle};

pub mod activities;
pub mod routes;

pub fn router(state: FederationConfig<AppHandle>) -> Router {
    Router::new()
        .merge(routes::users::users_router())
        .route("/", get(health_check))
        .layer(TraceLayer::new_for_http())
        .layer(FederationMiddleware::new(state))
}

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

    let config_path = "sellershut.toml";

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

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