use crate::models; use crate::schema; use schema::users::dsl::{users, id, username, email}; use models::NewUser; use diesel::prelude::*; use diesel::mysql::MysqlConnection; pub fn create_user(conn: &mut MysqlConnection, uname: String, mail: String) -> Result { let user = NewUser { username: uname, email: mail}; diesel::insert_into(crate::schema::users::table) .values(&user) .execute(conn) } pub fn delete_user(conn: &mut MysqlConnection, uid: i32) -> Result { diesel::delete(users.find(uid)) .execute(conn) } pub fn get_uid_email(conn: &mut MysqlConnection, mail: String) -> Result { users .filter(email.eq(mail)) .select(id) .first::(conn) } pub fn get_uid_uname(conn: &mut MysqlConnection, uname: String) -> Result { users .filter(username.eq(uname)) .select(id) .first::(conn) } pub fn get_uname(conn: &mut MysqlConnection, uid: i32) -> Result { users .find(uid) .select(username) .first::(conn) } pub fn get_email(conn: &mut MysqlConnection, uid: i32) -> Result { users .find(uid) .select(email) .first::(conn) } pub fn get_user_tables(conn: &mut MysqlConnection, uid: i32) -> Result, diesel::result::Error> { use schema::jrtables::dsl::{jrtables, id as tblid, owner_id}; jrtables .filter(owner_id.eq(uid)) .select(tblid) .load::(conn) }