summaryrefslogtreecommitdiff
path: root/src/db.rs
blob: 142aee5a70b252a5742f7aa7bf563e90a7131423 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use diesel::prelude::*;
use diesel::sqlite::SqliteConnection;
use dotenv::dotenv;
use std::env;
use crate::models::Post;

pub fn establish_connection() -> SqliteConnection {
    dotenv().ok();

    let database_url = env::var("DATABASE_URL")
        .expect("DATABASE_URL must be set");
    SqliteConnection::establish(&database_url)
        .expect(&format!("Error connecting to {}", database_url))
}

pub fn create_post<'a>(conn: &SqliteConnection, post: &Post) -> Result<usize, diesel::result::Error> {
    use crate::schema::posts;
    // TODO(andrew): add error checking
    return diesel::insert_into(posts::table).values(post).execute(conn);
}