44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
use sea_orm::ActiveValue::Set;
|
|
use serde::{Deserialize, Serialize};
|
|
use uuid::Uuid;
|
|
use crate::models::{category, user};
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
pub struct UserSerializer {
|
|
#[serde(skip_deserializing)]
|
|
pub id: Option<Uuid>,
|
|
pub username: String,
|
|
pub pub_key: String,
|
|
|
|
#[serde(skip_deserializing)]
|
|
pub created_at: String,
|
|
#[serde(skip_deserializing)]
|
|
pub updated_at: String,
|
|
}
|
|
|
|
impl From<user::Model> for UserSerializer {
|
|
fn from(model: user::Model) -> Self {
|
|
Self {
|
|
id: Some(model.id),
|
|
username: model.username,
|
|
pub_key: model.pub_key,
|
|
created_at: model.created_at.to_string(),
|
|
updated_at: model.updated_at.to_string(),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl UserSerializer {
|
|
pub fn into_active_model(self) -> user::ActiveModel {
|
|
user::ActiveModel {
|
|
username: Set(self.username),
|
|
pub_key: Set(self.pub_key),
|
|
..Default::default()
|
|
}
|
|
}
|
|
|
|
pub fn apply_to_active_model(self, mut active_model: user::ActiveModel) -> user::ActiveModel { active_model.username = Set(self.username);
|
|
active_model.pub_key = Set(self.pub_key);
|
|
active_model
|
|
}
|
|
} |