This commit is contained in:
2026-02-21 10:39:52 +01:00
parent f7c975a3f0
commit 66c1fe0025
38 changed files with 1543 additions and 616 deletions

44
src/serializers/user.rs Normal file
View File

@@ -0,0 +1,44 @@
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
}
}