Files
setra/src/main.rs
2025-10-05 21:02:33 +02:00

48 lines
1.1 KiB
Rust

mod api;
mod dtos;
mod models;
mod schema;
use crate::api::hit;
use crate::api::image;
use crate::api::tracker;
use diesel::{Connection, PgConnection};
use std::env;
#[macro_use]
extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello world!"
}
// TODO: add logging
// TODO: add auth
#[launch]
fn rocket() -> _ {
dotenv::dotenv().ok();
let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let image_path = env::var("IMAGE_PATH").expect("IMAGE_PATH must be set");
let db = PgConnection::establish(&database_url)
.expect(&format!("Error connecting to {}", database_url));
let app_data = models::AppState::new(db, image_path);
rocket::build()
.manage(app_data)
.mount("/", routes![index])
.mount(
"/tracker",
routes![
tracker::index,
tracker::get,
tracker::create,
tracker::delete
],
)
.mount("/hit", routes![hit::index, hit::get, hit::delete])
.mount("/image", routes![image::get])
}