diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-28 17:57:52 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-28 17:57:52 -0500 |
commit | 0fbecaba3dd4782e2b041fbc70c8651f4398b7bd (patch) | |
tree | 226d3c90dd7d7e322925bf088c01a300fe0d2df0 /src/main.rs | |
parent | merge (diff) | |
download | xssbook-0fbecaba3dd4782e2b041fbc70c8651f4398b7bd.tar.gz xssbook-0fbecaba3dd4782e2b041fbc70c8651f4398b7bd.tar.bz2 xssbook-0fbecaba3dd4782e2b041fbc70c8651f4398b7bd.zip |
new rust, clippy
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index 9ccc45b..31b749e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,9 @@ -use std::net::SocketAddr; +use std::{net::SocketAddr, process::exit}; use axum::{Router, response::Response, http::{Request, StatusCode}, middleware::{Next, self}, extract::ConnectInfo, RequestExt, body::HttpBody, Extension}; use tower_cookies::CookieManagerLayer; -use tracing::metadata::LevelFilter; +use tracing::{metadata::LevelFilter, error, info}; use tracing_subscriber::{prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, Layer, filter::filter_fn}; -use types::response::ResponseCode; +use types::http::ResponseCode; use crate::{api::{pages, auth, users, posts}, types::extract::RouterURI}; @@ -12,8 +12,11 @@ mod database; mod types; mod console; -async fn serve<B>(req: Request<B>, next: Next<B>) -> Response { - let file = ResponseCode::Success.file(&req.uri().to_string()).await; +async fn serve<B>(req: Request<B>, next: Next<B>) -> Response where + B: Send + Sync + 'static + HttpBody, +{ + let uri = req.uri(); + let file = ResponseCode::Success.file(&uri.to_string()).await; if file.status() != StatusCode::OK { return next.run(req).await; } @@ -40,8 +43,6 @@ async fn not_found() -> Response { #[tokio::main] async fn main() { - database::init().unwrap(); - let fmt_layer = tracing_subscriber::fmt::layer(); tracing_subscriber::registry() .with( @@ -51,6 +52,11 @@ async fn main() { ) .init(); + if database::init().is_err() { + error!("Failed to connect to the sqlite database"); + exit(1) + }; + let app = Router::new() .fallback(not_found) .nest("/", pages::router()) @@ -64,12 +70,16 @@ async fn main() { .layer(Extension(RouterURI("/api/posts"))) ).layer(CookieManagerLayer::new()); - let addr = "[::]:8080".parse::<std::net::SocketAddr>().unwrap(); - tracing::info!("listening on {}", addr); + let Ok(addr) = "[::]:8080".parse::<std::net::SocketAddr>() else { + error!("Failed to parse port binding"); + exit(1) + }; + + info!("listening on {}", addr); axum::Server::bind(&addr) .serve(app.into_make_service_with_connect_info::<SocketAddr>()) .await - .unwrap(); + .unwrap_or(()); } |