From 0fbecaba3dd4782e2b041fbc70c8651f4398b7bd Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 28 Jan 2023 17:57:52 -0500 Subject: new rust, clippy --- src/main.rs | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/main.rs') 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(req: Request, next: Next) -> Response { - let file = ResponseCode::Success.file(&req.uri().to_string()).await; +async fn serve(req: Request, next: Next) -> 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::().unwrap(); - tracing::info!("listening on {}", addr); + let Ok(addr) = "[::]:8080".parse::() 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::()) .await - .unwrap(); + .unwrap_or(()); } -- cgit v1.2.3-freya