doordesk-rs/server/src/main.rs

38 lines
971 B
Rust
Raw Normal View History

2024-01-25 02:40:50 -05:00
use app::*;
2024-01-26 18:09:06 -05:00
use axum::Router;
2024-02-01 00:48:48 -05:00
use db::*;
2024-01-25 02:40:50 -05:00
use fileserv::file_and_error_handler;
use leptos::*;
2024-01-26 20:47:00 -05:00
use leptos_axum::{generate_route_list, LeptosRoutes};
2024-01-25 02:40:50 -05:00
2024-01-30 23:02:22 -05:00
pub mod db;
2024-01-31 20:15:04 -05:00
pub mod fileserv;
2024-01-25 02:40:50 -05:00
#[tokio::main]
async fn main() {
let conf = get_configuration(None).await.unwrap();
let leptos_options = conf.leptos_options;
let addr = leptos_options.site_addr;
2024-01-26 20:47:00 -05:00
let routes = generate_route_list(App);
2024-01-25 02:40:50 -05:00
2024-01-31 20:15:04 -05:00
let pool = start_pool().await.expect("pool error");
let _ = db_build(pool.clone()).await.unwrap();
2024-01-25 02:40:50 -05:00
let app = Router::new()
2024-01-31 20:15:04 -05:00
.leptos_routes_with_context(
&leptos_options,
routes,
move || {
provide_context(pool.clone());
},
App,
)
2024-01-25 02:40:50 -05:00
.fallback(file_and_error_handler)
.with_state(leptos_options);
2024-01-26 18:09:06 -05:00
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
axum::serve(listener, app.into_make_service())
2024-01-25 02:40:50 -05:00
.await
.unwrap();
}