From 6634641937836380382ec02b67ac7a3d20331b85 Mon Sep 17 00:00:00 2001 From: shockrah Date: Tue, 4 Feb 2020 00:25:27 -0800 Subject: [PATCH] commiting old but nearly done work before goal shifting --- server/src/db_io/src/lib.rs | 49 +++++++++++++++++++++++++++------- server/src/db_io/src/models.rs | 4 +-- 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/server/src/db_io/src/lib.rs b/server/src/db_io/src/lib.rs index 36e587c..4ef1de2 100644 --- a/server/src/db_io/src/lib.rs +++ b/server/src/db_io/src/lib.rs @@ -6,33 +6,62 @@ pub mod schema; pub mod models; use diesel::prelude::*; -use dotenv::dotenv; +use schema::invites::dsl::*; +use models::Invite; use std::env; - struct DB { conn: MysqlConnection, url: String, } +fn get_conn() -> DB { + let url_ = env::var("DATABASE_URL") + .expect("DATABASE_URL not set!"); + + DB { + url: url_.clone(), + conn: MysqlConnection::establish(&url_) + .expect(&format!("Error connecting to {}", url_)), + } +} + +impl DB { + pub fn get_invite(&mut self) { + let connection = get_conn(); + let results = invites + .filter(uses.eq(1)) + .limit(5) + .load::(&connection.conn) + .expect("Error loading posts"); + + for i in results { + println!("hash {}", i.hash); + println!("uses {}", i.uses); + println!("timestamp {}", i.expire); + } + } +} + #[cfg(test)] mod tests { extern crate diesel; use super::*; - use super::models::*; + //use super::models::*; use super::diesel::prelude::*; use super::dotenv::dotenv; - use std::env; #[test] fn test_conn() { - let url = env::var("DATABASE_URL") - .expect("DATABASE_URL not set!"); - let conn = MysqlConnection::establish(&url) - .expect(&format!("Error connecting to {}", url)); - - let db = DB{conn, url}; + dotenv().ok(); + let db = get_conn(); + println!("{}", db.url); + } + #[test] + fn get_conn_wrapper() { + dotenv().ok(); + let db = get_conn(); println!("{}", db.url); } } diff --git a/server/src/db_io/src/models.rs b/server/src/db_io/src/models.rs index a4074aa..c7e966e 100644 --- a/server/src/db_io/src/models.rs +++ b/server/src/db_io/src/models.rs @@ -1,4 +1,4 @@ -#[derive(Queryable)] +#[derive(Serialize, Deserialize, Queryable)] pub struct User { pub id: u64, pub strid: String, @@ -14,7 +14,7 @@ pub struct channels { pub ctype: i64, } -#[derive(Queryable)] +#[derive(Serialize, Deserialize, Queryable)] pub struct Invite { pub hash: i64, pub uses: i32, // simple that tracks the number of uses a thing has left