add user structs
This commit is contained in:
parent
0223242473
commit
d87ade7980
2 changed files with 33 additions and 3 deletions
|
@ -6,11 +6,11 @@
|
|||
-- users
|
||||
create table if not exists witches (
|
||||
id blob not null primary key,
|
||||
last_seen int,
|
||||
username text not null unique,
|
||||
displayname text,
|
||||
email text,
|
||||
secret blob not null, -- encrypted password? need to figure auth out
|
||||
last_seen int,
|
||||
pwhash blob not null,
|
||||
created_at int not null default (unixepoch()),
|
||||
last_updated int not null default (unixepoch())
|
||||
);
|
||||
|
|
32
src/users.rs
32
src/users.rs
|
@ -4,7 +4,37 @@ use argon2::{
|
|||
};
|
||||
use uuid::Uuid;
|
||||
|
||||
fn create_user(username: &str, password: &[u8]) -> Result<Uuid, CreateUserError> {
|
||||
const CREATE_QUERY: &str = "insert into witches (id, username, pwhash) values ($1, $2, $3)";
|
||||
|
||||
pub struct User {
|
||||
id: Uuid,
|
||||
username: String,
|
||||
displayname: Option<String>,
|
||||
email: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, sqlx::FromRow, sqlx::Encode)]
|
||||
struct DbUser {
|
||||
id: Uuid,
|
||||
username: String,
|
||||
displayname: Option<String>,
|
||||
email: Option<String>,
|
||||
last_seen: Option<u64>,
|
||||
pwhash: String,
|
||||
}
|
||||
|
||||
impl From<DbUser> for User {
|
||||
fn from(dbu: DbUser) -> Self {
|
||||
User {
|
||||
id: dbu.id,
|
||||
username: dbu.username,
|
||||
displayname: dbu.displayname,
|
||||
email: dbu.email,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async fn create_user(username: &User, password: &[u8]) -> Result<Uuid, CreateUserError> {
|
||||
// Argon2 with default params (Argon2id v19)
|
||||
let argon2 = Argon2::default();
|
||||
|
||||
|
|
Loading…
Reference in a new issue