2021-07-19 22:29:03 +02:00
|
|
|
use std::{io, env};
|
|
|
|
use sqlx::MySqlPool;
|
2021-08-26 17:45:38 +02:00
|
|
|
use std::net::SocketAddr;
|
|
|
|
use axum::Router;
|
|
|
|
use tower_http::add_extension::AddExtensionLayer;
|
2021-07-19 22:29:03 +02:00
|
|
|
|
|
|
|
mod v1;
|
|
|
|
|
2021-08-26 17:45:38 +02:00
|
|
|
#[tokio::main]
|
|
|
|
async fn main() {
|
2021-07-19 22:29:03 +02:00
|
|
|
|
|
|
|
let database_url = env::var("DBURL").unwrap();
|
|
|
|
let db_pool = MySqlPool::new(&database_url).await.unwrap();
|
|
|
|
|
2021-08-26 17:45:38 +02:00
|
|
|
let app = Router::new()
|
|
|
|
.nest("/v1", v1::routes())
|
|
|
|
.layer(AddExtensionLayer::new(db_pool));
|
2021-07-19 22:29:03 +02:00
|
|
|
|
2021-08-26 17:45:38 +02:00
|
|
|
let addr: SocketAddr = env::var("LISTEN").expect("The LISTEN env var ist not set").parse().expect("The LISTEN env var is set incorrectly");
|
|
|
|
|
|
|
|
axum::Server::bind(&addr)
|
|
|
|
.serve(app.into_make_service())
|
|
|
|
.await
|
|
|
|
.expect("Something went wrong :(");
|
2021-07-19 22:29:03 +02:00
|
|
|
}
|