Init
This commit is contained in:
52
src/interfaces/http/dto/group.rs
Normal file
52
src/interfaces/http/dto/group.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
use crate::models::group;
|
||||
use sea_orm::Set;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use utoipa::ToSchema;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Serialize, ToSchema)]
|
||||
pub struct GroupResponse {
|
||||
pub id: Uuid,
|
||||
pub server_id: Uuid,
|
||||
pub name: String,
|
||||
pub permissions: i64,
|
||||
pub is_default: bool,
|
||||
pub created_at: String,
|
||||
}
|
||||
|
||||
impl From<group::Model> for GroupResponse {
|
||||
fn from(model: group::Model) -> Self {
|
||||
Self {
|
||||
id: model.id,
|
||||
server_id: model.server_id,
|
||||
name: model.name,
|
||||
permissions: model.permissions,
|
||||
is_default: model.is_default,
|
||||
created_at: model.created_at.to_rfc3339(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, ToSchema)]
|
||||
pub struct CreateGroupRequest {
|
||||
pub server_id: Uuid,
|
||||
pub name: String,
|
||||
pub permissions: i64,
|
||||
}
|
||||
|
||||
impl CreateGroupRequest {
|
||||
pub fn into_active_model(self) -> group::ActiveModel {
|
||||
group::ActiveModel {
|
||||
server_id: Set(self.server_id),
|
||||
name: Set(self.name),
|
||||
permissions: Set(self.permissions),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn apply_to(self, mut am: group::ActiveModel) -> group::ActiveModel {
|
||||
am.name = Set(self.name);
|
||||
am.permissions = Set(self.permissions);
|
||||
am
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user