2020-05-27 17:08:51 +00:00
|
|
|
#![feature(proc_macro_hygiene, decl_macro)]
|
|
|
|
|
|
|
|
#[macro_use]
|
|
|
|
extern crate rocket;
|
2020-06-24 08:25:28 +00:00
|
|
|
extern crate rocket_contrib;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate diesel;
|
|
|
|
#[macro_use]
|
2020-06-24 09:32:27 +00:00
|
|
|
extern crate diesel_migrations;
|
|
|
|
#[macro_use]
|
2020-06-24 08:25:28 +00:00
|
|
|
extern crate serde;
|
|
|
|
#[macro_use]
|
2020-06-25 12:42:36 +00:00
|
|
|
extern crate serde_json;
|
|
|
|
#[macro_use]
|
2020-06-24 08:25:28 +00:00
|
|
|
extern crate slog;
|
2020-05-27 17:08:51 +00:00
|
|
|
|
2020-06-24 08:15:35 +00:00
|
|
|
pub mod api;
|
|
|
|
pub mod core;
|
2020-06-24 08:25:28 +00:00
|
|
|
pub mod utils;
|
2020-06-25 10:33:33 +00:00
|
|
|
pub mod schema;
|
2020-06-24 08:15:35 +00:00
|
|
|
|
2020-06-24 08:25:28 +00:00
|
|
|
use slog_term;
|
|
|
|
use slog_async;
|
2020-06-24 09:32:27 +00:00
|
|
|
use slog::{Drain, Logger};
|
|
|
|
|
|
|
|
embed_migrations!("migrations");
|
|
|
|
|
|
|
|
fn run_migrations(logger: &Logger) {
|
|
|
|
let result = embedded_migrations::run(&utils::db::pg_connection());
|
|
|
|
if let Err(e) = result {
|
|
|
|
error!(logger, "migration error: {}", e.to_string());
|
|
|
|
}
|
|
|
|
}
|
2020-06-24 08:15:35 +00:00
|
|
|
|
2020-05-27 17:08:51 +00:00
|
|
|
|
2020-05-27 16:38:29 +00:00
|
|
|
fn main() {
|
2020-06-24 09:32:27 +00:00
|
|
|
dotenv::dotenv().ok();
|
|
|
|
|
2020-06-24 08:25:28 +00:00
|
|
|
let decorator = slog_term::TermDecorator::new().build();
|
|
|
|
let drain = slog_term::FullFormat::new(decorator).build().fuse();
|
|
|
|
let drain = slog_async::Async::new(drain).build().fuse();
|
|
|
|
let logger = slog::Logger::root(drain, o!());
|
|
|
|
|
2020-06-24 09:32:27 +00:00
|
|
|
run_migrations(&logger);
|
|
|
|
|
2020-06-24 08:15:35 +00:00
|
|
|
let mut rocket = rocket::ignite();
|
|
|
|
|
|
|
|
rocket = api::routes::fuel(rocket);
|
|
|
|
|
2020-06-24 09:06:52 +00:00
|
|
|
rocket.manage(utils::db::pool())
|
|
|
|
.manage(logger)
|
|
|
|
.launch();
|
2020-05-27 16:38:29 +00:00
|
|
|
}
|