Formatting commit.

This commit is contained in:
2022-05-28 18:32:00 +02:00
parent 5c27be0191
commit 836a4ab59f
6 changed files with 134 additions and 143 deletions

View File

@@ -1,6 +1,4 @@
use validator::{Validate, ValidationError};
use uuid::Uuid;
use diesel::{QueryDsl, RunQueryDsl, Connection, ExpressionMethods};
use crate::schema::{DatabaseError, DbConn};
use argon2::password_hash::SaltString;
use argon2::PasswordHash;
use argon2::PasswordVerifier;
@@ -8,9 +6,11 @@ use argon2::{
password_hash::{rand_core::OsRng, PasswordHasher},
Argon2,
};
use diesel::{Connection, ExpressionMethods, QueryDsl, RunQueryDsl};
use diesel_derive_enum::DbEnum;
use serde::{Deserialize, Serialize};
use crate::schema::{DbConn, DatabaseError};
use uuid::Uuid;
use validator::{Validate, ValidationError};
#[derive(Debug, Serialize, Deserialize, DbEnum, Clone, Copy, PartialEq)]
pub enum Role {
@@ -41,7 +41,6 @@ struct Pwd {
password: String,
}
#[derive(Serialize, Deserialize, Debug, Insertable, Queryable)]
#[table_name = "users"]
pub struct User {
@@ -92,30 +91,33 @@ pub async fn insert_user(conn: DbConn, new_user: Register) -> Result<usize, Data
let argon2 = Argon2::default();
let password_hash = argon2.hash_password(new_user.password.as_bytes(), &salt)?.to_string();
let password_hash = argon2
.hash_password(new_user.password.as_bytes(), &salt)?
.to_string();
Ok(conn.run(move |c| {
c.transaction(|| {
let id = Uuid::new_v4();
Ok(conn
.run(move |c| {
c.transaction(|| {
let id = Uuid::new_v4();
diesel::insert_into(users::table)
.values(User {
diesel::insert_into(users::table)
.values(User {
id: id.clone(),
username: new_user.username,
email: new_user.email,
role: Role::User
role: Role::User,
})
.execute(c)?;
.execute(c)?;
diesel::insert_into(pwd::table)
.values(Pwd {
user_id: id,
password: password_hash
})
.execute(c)
diesel::insert_into(pwd::table)
.values(Pwd {
user_id: id,
password: password_hash,
})
.execute(c)
})
})
})
.await?)
.await?)
}
pub async fn login(conn: DbConn, login: Login) -> Result<LoginResult, DatabaseError> {
@@ -141,12 +143,12 @@ pub async fn login(conn: DbConn, login: Login) -> Result<LoginResult, DatabaseEr
Ok(LoginResult {
result: true,
user : Some(user)
user: Some(user),
})
} else {
Ok(LoginResult {
result: false,
user: None
user: None,
})
}
})
@@ -154,7 +156,8 @@ pub async fn login(conn: DbConn, login: Login) -> Result<LoginResult, DatabaseEr
}
pub async fn get_user(conn: DbConn, id: Uuid) -> Result<User, DatabaseError> {
Ok(conn.run(move |c| users::table.filter(users::id.eq(id)).first(c))
Ok(conn
.run(move |c| users::table.filter(users::id.eq(id)).first(c))
.await?)
}
@@ -173,10 +176,7 @@ pub fn unique_username(
}
}
pub fn unique_email(
email: &String,
conn: &diesel::PgConnection,
) -> Result<(), ValidationError> {
pub fn unique_email(email: &String, conn: &diesel::PgConnection) -> Result<(), ValidationError> {
match users::table
.count()
.filter(users::email.eq(email))
@@ -188,4 +188,4 @@ pub fn unique_email(
"Database error while validating email",
)),
}
}
}