feat: return member with messages
This commit is contained in:
parent
8a7711cabc
commit
5b24d0052b
1 changed files with 20 additions and 6 deletions
|
@ -1,10 +1,15 @@
|
||||||
use diesel::{Insertable, Queryable, Selectable};
|
use diesel::{ExpressionMethods, Insertable, QueryDsl, Queryable, Selectable};
|
||||||
|
use diesel_async::RunQueryDsl;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
use crate::{Conn, error::Error, schema::messages};
|
use crate::{
|
||||||
|
Conn,
|
||||||
|
error::Error,
|
||||||
|
schema::{channels, guilds, messages},
|
||||||
|
};
|
||||||
|
|
||||||
use super::User;
|
use super::Member;
|
||||||
|
|
||||||
#[derive(Clone, Queryable, Selectable, Insertable)]
|
#[derive(Clone, Queryable, Selectable, Insertable)]
|
||||||
#[diesel(table_name = messages)]
|
#[diesel(table_name = messages)]
|
||||||
|
@ -23,7 +28,16 @@ impl MessageBuilder {
|
||||||
conn: &mut Conn,
|
conn: &mut Conn,
|
||||||
cache_pool: &redis::Client,
|
cache_pool: &redis::Client,
|
||||||
) -> Result<Message, Error> {
|
) -> Result<Message, Error> {
|
||||||
let user = User::fetch_one(conn, cache_pool, self.user_uuid).await?;
|
use channels::dsl;
|
||||||
|
|
||||||
|
let guild_uuid = dsl::channels
|
||||||
|
.filter(dsl::uuid.eq(self.channel_uuid))
|
||||||
|
.inner_join(guilds::table)
|
||||||
|
.select(guilds::uuid)
|
||||||
|
.get_result(conn)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
let member = Member::fetch_one(conn, cache_pool, None, self.user_uuid, guild_uuid).await?;
|
||||||
|
|
||||||
Ok(Message {
|
Ok(Message {
|
||||||
uuid: self.uuid,
|
uuid: self.uuid,
|
||||||
|
@ -31,7 +45,7 @@ impl MessageBuilder {
|
||||||
user_uuid: self.user_uuid,
|
user_uuid: self.user_uuid,
|
||||||
message: self.message.clone(),
|
message: self.message.clone(),
|
||||||
reply_to: self.reply_to,
|
reply_to: self.reply_to,
|
||||||
user,
|
member,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,5 +57,5 @@ pub struct Message {
|
||||||
user_uuid: Uuid,
|
user_uuid: Uuid,
|
||||||
message: String,
|
message: String,
|
||||||
reply_to: Option<Uuid>,
|
reply_to: Option<Uuid>,
|
||||||
user: User,
|
member: Member,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue