style: move structs to objects and split into several files for readability
This commit is contained in:
parent
08cb70ce18
commit
7021c80f02
32 changed files with 1591 additions and 1474 deletions
40
src/objects/message.rs
Normal file
40
src/objects/message.rs
Normal file
|
@ -0,0 +1,40 @@
|
|||
use diesel::{Insertable, Queryable, Selectable};
|
||||
use serde::Serialize;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{Data, error::Error, schema::messages};
|
||||
|
||||
use super::User;
|
||||
|
||||
#[derive(Clone, Queryable, Selectable, Insertable)]
|
||||
#[diesel(table_name = messages)]
|
||||
#[diesel(check_for_backend(diesel::pg::Pg))]
|
||||
pub struct MessageBuilder {
|
||||
pub uuid: Uuid,
|
||||
pub channel_uuid: Uuid,
|
||||
pub user_uuid: Uuid,
|
||||
pub message: String,
|
||||
}
|
||||
|
||||
impl MessageBuilder {
|
||||
pub async fn build(&self, data: &Data) -> Result<Message, Error> {
|
||||
let user = User::fetch_one(data, self.user_uuid).await?;
|
||||
|
||||
Ok(Message {
|
||||
uuid: self.uuid,
|
||||
channel_uuid: self.channel_uuid,
|
||||
user_uuid: self.user_uuid,
|
||||
message: self.message.clone(),
|
||||
user,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Serialize)]
|
||||
pub struct Message {
|
||||
uuid: Uuid,
|
||||
channel_uuid: Uuid,
|
||||
user_uuid: Uuid,
|
||||
message: String,
|
||||
user: User,
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue