doordesk-rs/server/src/main.rs
2024-02-01 00:48:48 -05:00

37 lines
971 B
Rust

use app::*;
use axum::Router;
use db::*;
use fileserv::file_and_error_handler;
use leptos::*;
use leptos_axum::{generate_route_list, LeptosRoutes};
pub mod db;
pub mod fileserv;
#[tokio::main]
async fn main() {
let conf = get_configuration(None).await.unwrap();
let leptos_options = conf.leptos_options;
let addr = leptos_options.site_addr;
let routes = generate_route_list(App);
let pool = start_pool().await.expect("pool error");
let _ = db_build(pool.clone()).await.unwrap();
let app = Router::new()
.leptos_routes_with_context(
&leptos_options,
routes,
move || {
provide_context(pool.clone());
},
App,
)
.fallback(file_and_error_handler)
.with_state(leptos_options);
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
axum::serve(listener, app.into_make_service())
.await
.unwrap();
}