achubb_website/src/lib.rs

49 lines
1.3 KiB
Rust
Raw Normal View History

#![allow(async_fn_in_trait)]
use crate::database::article::load_articles;
2025-03-04 07:43:08 -05:00
use sqlx::{Executor, PgPool};
use std::error::Error;
use tracing::info;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
2024-12-18 07:26:21 -05:00
mod auth;
pub mod database;
2024-12-18 07:26:21 -05:00
mod errors;
mod html;
mod macros;
2025-03-04 07:43:08 -05:00
pub async fn run_server(pool: PgPool) -> Result<(), Box<dyn Error>> {
pool.execute(include_str!("../schema.sql"))
.await?;
tracing_subscriber::registry()
.with(
tracing_subscriber::EnvFilter::try_from_default_env()
2024-08-07 21:28:21 -04:00
.unwrap_or_else(|_| "achubb_website".into()),
)
.with(tracing_subscriber::fmt::layer())
.init();
2025-03-04 07:43:08 -05:00
info!("initializing router...");
2024-03-24 14:09:21 -04:00
let port = 21212_u16;
let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));
let router = html::root::get_router(pool);
info!("router initialized, now listening on port {}", port);
2025-03-04 07:43:08 -05:00
match axum::Server::bind(&addr)
.serve(router.into_make_service())
.await
{
Ok(p) => p,
Err(_) => panic!("error starting webserver"),
}
Ok(())
}
pub async fn run_load(pool: &PgPool) -> Result<(), Box<dyn Error>> {
2025-03-04 07:43:08 -05:00
pool.execute(include_str!("../schema.sql"))
.await?;
load_articles(pool).await?;
Ok(())
}