57 lines
1.5 KiB
Rust
57 lines
1.5 KiB
Rust
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<usize, diesel::result::Error> {
|
|
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<usize, diesel::result::Error> {
|
|
diesel::delete(users.find(uid))
|
|
.execute(conn)
|
|
}
|
|
|
|
pub fn get_uid_email(conn: &mut MysqlConnection, mail: String) -> Result<i32, diesel::result::Error> {
|
|
users
|
|
.filter(email.eq(mail))
|
|
.select(id)
|
|
.first::<i32>(conn)
|
|
}
|
|
|
|
pub fn get_uid_uname(conn: &mut MysqlConnection, uname: String) -> Result<i32, diesel::result::Error> {
|
|
users
|
|
.filter(username.eq(uname))
|
|
.select(id)
|
|
.first::<i32>(conn)
|
|
}
|
|
|
|
pub fn get_uname(conn: &mut MysqlConnection, uid: i32) -> Result<String, diesel::result::Error> {
|
|
users
|
|
.find(uid)
|
|
.select(username)
|
|
.first::<String>(conn)
|
|
}
|
|
|
|
pub fn get_email(conn: &mut MysqlConnection, uid: i32) -> Result<String, diesel::result::Error> {
|
|
users
|
|
.find(uid)
|
|
.select(email)
|
|
.first::<String>(conn)
|
|
}
|
|
|
|
pub fn get_user_tables(conn: &mut MysqlConnection, uid: i32) -> Result<Vec<i32>, diesel::result::Error> {
|
|
use schema::jrtables::dsl::{jrtables, id as tblid, owner_id};
|
|
jrtables
|
|
.filter(owner_id.eq(uid))
|
|
.select(tblid)
|
|
.load::<i32>(conn)
|
|
}
|