Init
This commit is contained in:
40
src/interfaces/http/dto/message.rs
Normal file
40
src/interfaces/http/dto/message.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
use crate::models::message;
|
||||
use sea_orm::Set;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
pub struct MessageResponse {
|
||||
pub id: Uuid,
|
||||
pub channel_id: Uuid,
|
||||
pub author_id: Uuid,
|
||||
pub content: String,
|
||||
}
|
||||
|
||||
impl From<message::Model> for MessageResponse {
|
||||
fn from(model: message::Model) -> Self {
|
||||
Self {
|
||||
id: model.id,
|
||||
channel_id: model.channel_id,
|
||||
author_id: model.user_id,
|
||||
content: model.content,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct CreateMessageRequest {
|
||||
pub channel_id: Uuid,
|
||||
pub content: String,
|
||||
}
|
||||
|
||||
impl From<CreateMessageRequest> for message::ActiveModel {
|
||||
fn from(request: CreateMessageRequest) -> Self {
|
||||
Self {
|
||||
channel_id: Set(request.channel_id),
|
||||
user_id: Set(Uuid::new_v4()),
|
||||
content: Set(request.content),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user