summaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
authorAndrew Guschin <saintruler@gmail.com>2021-04-18 16:25:48 +0400
committerAndrew Guschin <saintruler@gmail.com>2021-04-18 16:25:48 +0400
commit0ad35b9b50dfaa1083f3f5acc633ec769bc10e37 (patch)
tree4acfde7b0b09fb258002055a8d0e2d5e1a9c5c3e /src/db.rs
Initial commit
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs20
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);
+}