diff options
| author | Andrew Guschin <saintruler@gmail.com> | 2021-04-18 16:25:48 +0400 |
|---|---|---|
| committer | Andrew Guschin <saintruler@gmail.com> | 2021-04-18 16:25:48 +0400 |
| commit | 0ad35b9b50dfaa1083f3f5acc633ec769bc10e37 (patch) | |
| tree | 4acfde7b0b09fb258002055a8d0e2d5e1a9c5c3e /src/db.rs | |
Initial commit
Diffstat (limited to 'src/db.rs')
| -rw-r--r-- | src/db.rs | 20 |
1 files changed, 20 insertions, 0 deletions
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<usize, diesel::result::Error> { + use crate::schema::posts; + // TODO(andrew): add error checking + return diesel::insert_into(posts::table).values(post).execute(conn); +} |