From 03cda97a0d83673bd49af1b6e2a857ff4e5b7bff Mon Sep 17 00:00:00 2001 From: SadlyNotSappho Date: Fri, 5 Jan 2024 11:58:28 -0800 Subject: [PATCH] again, sorta get db working --- docker-compose.yml.example | 11 +++++------ src/main.rs | 28 +++++++++++++++++++--------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml.example b/docker-compose.yml.example index 6901a01..bb0cb8a 100644 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -15,15 +15,14 @@ services: ports: - 8000:8000 environment: - - PG_DBNAME=example - - PG_HOST=db - - PG_USER=postgres - - PG_PASSWORD=mysecretpassword + # name in main.rs db.user POSTGRES_PASSWORD POSTGRES_DB + - ROCKET_DATABASES={diesel_postgres={url="postgres://postgres:passwordpasswordpassword@db/example"}} + - ROCKET_ADDRESS=0.0.0.0 - ROCKET_PORT=8000 - RUST_LOG=debug - - ROCKET_SECRET_KEY="openssl rand -base64 32" + - ROCKET_SECRET_KEY=openssl rand -base64 32 volumes: - type: bind source: ./web @@ -47,7 +46,7 @@ services: - db-data:/var/lib/postgresql/data environment: - POSTGRES_DB=example - - POSTGRES_PASSWORD_FILE=/run/secrets/db-password + - POSTGRES_PASSWORD=passwordpasswordpassword expose: - 5432 healthcheck: diff --git a/src/main.rs b/src/main.rs index faa66f1..65519ef 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,9 @@ -use rocket_db_pools::{Database, Connection}; -use rocket_db_pools::diesel::{QueryResult, PgPool, prelude::*}; +use rocket::http::Status; +use rocket::response::content::{self, RawHtml}; +use rocket::Request; use rocket_db_pools::diesel; +use rocket_db_pools::diesel::{prelude::*, PgPool, QueryResult}; +use rocket_db_pools::{Connection, Database}; use std::fs; #[macro_use] extern crate rocket; @@ -11,10 +14,9 @@ use rocket::{ tokio::time::{sleep, Duration}, }; - #[get("/")] -fn hello() -> String { - fs::read_to_string("/home/sadlynotsappho/Projects/Rust/Projects/fossil/web/index.html").unwrap() +fn hello() -> RawHtml { + content::RawHtml(fs::read_to_string("/srv/web/index.html").unwrap()) // format!("hi!!!") } @@ -90,17 +92,25 @@ rocket_db_pools::diesel::table! { #[get("/dbtest")] async fn dbtest(mut db: Connection) -> QueryResult { - let post_ids: Vec = posts::table - .select(posts::id) - .load(&mut db) - .await?; + let post_ids: Vec = posts::table.select(posts::id).load(&mut db).await?; Ok(format!("{post_ids:?}")) } +#[catch(default)] +fn default_catcher(status: Status, _: &Request) -> RawHtml { + content::RawHtml( + fs::read_to_string("/srv/web/error.html") + .unwrap() + .replace("{{errorcode}}", &status.code.to_string()[..]), + ) +} + #[rocket::main] async fn main() { let _rocket = rocket::build() + .attach(Db::init()) .mount("/", routes![hello, get_book, delay, login, logout, dbtest]) + .register("/", catchers![default_catcher]) .mount("/login", FileServer::from("/srv/web")) .launch() .await