mi/backend/src/main.rs

52 lines
1.2 KiB
Rust

#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use]
extern crate diesel;
#[macro_use]
extern crate rocket;
#[macro_use]
extern crate rocket_contrib;
#[macro_use]
extern crate tracing;
use color_eyre::eyre::Result;
use diesel::sqlite::SqliteConnection;
use rocket_contrib::helmet::SpaceHelmet;
use rocket_prometheus::PrometheusMetrics;
const APPLICATION_NAME: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));
pub mod api;
pub mod models;
pub mod schema;
#[database("main_data")]
pub struct MainDatabase(SqliteConnection);
fn main() -> Result<()> {
let _ = kankyo::init();
color_eyre::install()?;
tracing_subscriber::fmt::init();
info!("{} starting up", APPLICATION_NAME);
let prometheus = PrometheusMetrics::with_registry(prometheus::default_registry().clone());
rocket::ignite()
.attach(prometheus.clone())
.attach(MainDatabase::fairing())
.attach(SpaceHelmet::default())
.mount("/metrics", prometheus)
.mount(
"/api",
routes![
api::get_members,
api::get_switches,
api::get_current_front,
api::make_switch
],
)
.launch();
Ok(())
}