use mysql_async::{Pool, Conn}; use crate::badges::Badge; use crate::err::DbError; pub struct Member { id: u64, name: String, permissions: u64, badges: Option>, } struct InsertableMember<'n> { name: &'n str, permissions: u64, badges: Option> } async fn insert_new_member<'nm>(conn: &Conn, name: &'nm str) -> Result> { // 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(); } }