#![feature(proc_macro_hygiene, decl_macro)] #[macro_use] extern crate rocket; #[macro_use] extern crate rocket_contrib; #[macro_use] extern crate diesel; use trust_dns_client::client::SyncClient; use trust_dns_client::tcp::TcpClientConnection; mod models; mod config; mod schema; mod routes; use routes::users::*; use routes::zones::*; #[database("db")] pub struct DbConn(diesel::SqliteConnection); type DnsClient = SyncClient; #[launch] fn rocket() -> rocket::Rocket { let app_config = config::load("config.toml".into()); println!("{:#?}", app_config); let conn = TcpClientConnection::new(app_config.dns.server).unwrap(); let client = SyncClient::new(conn); rocket::ignite() .manage(client) .manage(app_config) .attach(DbConn::fairing()) .mount("/api/v1", routes![get_zone_records, create_auth_token, create_user]) }