mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-26 19:57:25 +01:00
49 lines
1.4 KiB
Rust
49 lines
1.4 KiB
Rust
// Required for database/schema.rs
|
|
#[macro_use]
|
|
extern crate diesel;
|
|
|
|
use actix_web::{App, HttpServer};
|
|
|
|
mod database;
|
|
mod error;
|
|
|
|
mod routes;
|
|
use routes::*;
|
|
|
|
#[actix_web::main]
|
|
async fn main() -> std::io::Result<()> {
|
|
dotenv::dotenv().ok();
|
|
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
|
|
sodiumoxide::init().expect("Failed to init crypto library!");
|
|
let db_pool = database::connect().expect("Failed to create database interface!");
|
|
|
|
let server = HttpServer::new(move || {
|
|
App::new()
|
|
.data(db_pool.clone())
|
|
.wrap(actix_web::middleware::Logger::new(
|
|
"%t: %r -> %s; %b B; %D ms",
|
|
))
|
|
.service(register_user)
|
|
.service(login_user)
|
|
.service(put_user)
|
|
.service(get_user)
|
|
.service(get_person)
|
|
.service(update_person)
|
|
.service(get_persons)
|
|
.service(delete_person)
|
|
.service(get_ensemble)
|
|
.service(update_ensemble)
|
|
.service(delete_ensemble)
|
|
.service(get_ensembles)
|
|
.service(get_instrument)
|
|
.service(update_instrument)
|
|
.service(delete_instrument)
|
|
.service(get_instruments)
|
|
.service(get_work)
|
|
.service(update_work)
|
|
.service(delete_work)
|
|
.service(get_works)
|
|
});
|
|
|
|
server.bind("127.0.0.1:8087")?.run().await
|
|
}
|