Init
This commit is contained in:
44
src/serializers/user.rs
Normal file
44
src/serializers/user.rs
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user