41 lines
980 B
Rust
41 lines
980 B
Rust
|
#![allow(proc_macro_derive_resolution_fallback)]
|
||
|
|
||
|
#[macro_use]
|
||
|
extern crate diesel;
|
||
|
extern crate serde;
|
||
|
extern crate sqlite3;
|
||
|
|
||
|
use actix_web::{ HttpServer, Responder, middleware, App};
|
||
|
use diesel::sqlite::SqliteConnection;
|
||
|
use std::time::Duration;
|
||
|
|
||
|
mod routes;
|
||
|
|
||
|
use self::routes::{index,projects,skills};
|
||
|
use diesel::r2d2::{self, ConnectionManager};
|
||
|
|
||
|
|
||
|
type DbPool = r2d2::Pool<ConnectionManager<SqliteConnection>>;
|
||
|
|
||
|
#[actix_web::main]
|
||
|
async fn main() -> std::io::Result<()> {
|
||
|
|
||
|
// set up database connection pool
|
||
|
let connspec = std::env::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(index)
|
||
|
.service(projects)
|
||
|
.service(skills)
|
||
|
})
|
||
|
.bind("127.0.0.1:8080")?
|
||
|
.run()
|
||
|
.await
|
||
|
}
|