From 0ad35b9b50dfaa1083f3f5acc633ec769bc10e37 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Sun, 18 Apr 2021 16:25:48 +0400 Subject: Initial commit --- src/db.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/db.rs (limited to 'src/db.rs') diff --git a/src/db.rs b/src/db.rs new file mode 100644 index 0000000..142aee5 --- /dev/null +++ b/src/db.rs @@ -0,0 +1,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 { + use crate::schema::posts; + // TODO(andrew): add error checking + return diesel::insert_into(posts::table).values(post).execute(conn); +} -- cgit v1.2.3