freechat/server/src/members.rs
2020-07-12 15:09:03 -07:00

48 lines
1.2 KiB
Rust

use mysql_async::{Pool, Conn};
use crate::badges::Badge;
use crate::err::DbError;
pub struct Member {
id: u64,
name: String,
permissions: u64,
badges: Option<Vec<Badge>>,
}
struct InsertableMember<'n> {
name: &'n str,
permissions: u64,
badges: Option<Vec<Badge>>
}
async fn insert_new_member<'nm>(conn: &Conn, name: &'nm str)
-> Result<Member, DbError<'nm>> {
// Updates both the members and keys table accordingly
use crate::perms::{JOIN_VOICE, SEND_MESSAGES};
let m = InsertableMember {
name: name,
permissions: JOIN_VOICE | SEND_MESSAGES, // can join voice and send messages by default
badges: None
};
// TODO: this stuff once the invites/ user generation to be done
// conn.batch_exec(
// r"INSERT INTO `members` (name, status)",
// params!{
// "name" => name,
// "join"
// }
// ).await;
Err(DbError::from("Could not create user"))
}
#[cfg(test)]
mod members_tests {
use mysql_async::{Pool, Conn};
use std::env::var;
use dotenv::dotenv;
#[test]
fn db_create_member() {
let conn = Pool::new(&var("DATABASE_URL").unwrap()).get_conn();
}
}