39 lines
934 B
Rust
39 lines
934 B
Rust
|
|
extern crate dotenv;
|
|
extern crate diesel;
|
|
extern crate serde;
|
|
extern crate sqlite3;
|
|
|
|
use actix_web::{ HttpServer, App};
|
|
use diesel::sqlite::SqliteConnection;
|
|
|
|
mod routes;
|
|
|
|
use self::routes::{profiles,skills,languages};
|
|
use diesel::r2d2::{self, ConnectionManager};
|
|
use dotenv::dotenv;
|
|
|
|
type DbPool = r2d2::Pool<ConnectionManager<SqliteConnection>>;
|
|
|
|
#[actix_web::main]
|
|
async fn main() -> std::io::Result<()> {
|
|
dotenv().ok();
|
|
// set up database connection pool
|
|
let connspec = dotenv::var("DATABASE_URL").expect("DATABASE_URL");
|
|
let manager = ConnectionManager::<SqliteConnection>::new(connspec);
|
|
let pool = r2d2::Pool::builder()
|
|
.build(manager)
|
|
.expect("Failed to create pool.");
|
|
|
|
HttpServer::new(move || {
|
|
App::new()
|
|
.data(pool.clone())
|
|
.service(skills)
|
|
.service(profiles)
|
|
.service(languages)
|
|
})
|
|
.bind("127.0.0.1:8080")?
|
|
.run()
|
|
.await
|
|
}
|