init
This commit is contained in:
@@ -1,5 +1,41 @@
|
||||
use super::{domain::User, dto::UserResponse};
|
||||
use crate::auth::password::hash_password;
|
||||
use crate::models::user;
|
||||
use crate::routes::user::dto::{CreateUserRequest, UpdateUserRequest, UserResponse};
|
||||
use anyhow::Result as AnyResult;
|
||||
use sea_orm::{NotSet, Set};
|
||||
use uuid::Uuid;
|
||||
|
||||
pub fn to_response(_user: User) -> UserResponse {
|
||||
todo!()
|
||||
pub fn user_model_to_user_response(model: user::Model) -> UserResponse {
|
||||
UserResponse {
|
||||
id: model.id,
|
||||
username: model.username,
|
||||
pub_key: model.pub_key,
|
||||
is_superuser: model.is_superuser,
|
||||
created_at: model.created_at,
|
||||
updated_at: model.updated_at,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn create_request_to_am(payload: CreateUserRequest) -> AnyResult<user::ActiveModel> {
|
||||
Ok(user::ActiveModel {
|
||||
id: Set(Uuid::new_v4()),
|
||||
username: Set(payload.username),
|
||||
password: Set(hash_password(&payload.password)?),
|
||||
pub_key: Set(payload.pub_key),
|
||||
is_superuser: Set(payload.is_superuser),
|
||||
created_at: Set(chrono::Utc::now()),
|
||||
updated_at: Set(chrono::Utc::now()),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn update_request_to_am(id: Uuid, payload: UpdateUserRequest) -> user::ActiveModel {
|
||||
user::ActiveModel {
|
||||
id: Set(id),
|
||||
username: Set(payload.username),
|
||||
password: NotSet, // On ne change pas le password via PUT général
|
||||
pub_key: Set(payload.pub_key),
|
||||
is_superuser: Set(payload.is_superuser),
|
||||
updated_at: Set(chrono::Utc::now()),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user