Compare commits
No commits in common. "447c577a2a2ae3071f21333e76a4ac3d89995316" and "4cb89645fefd6f1a96047169db0ab59bf1d285f5" have entirely different histories.
447c577a2a
...
4cb89645fe
3 changed files with 11 additions and 39 deletions
|
@ -284,7 +284,7 @@ impl Me {
|
|||
cache_pool: &redis::Client,
|
||||
new_status: i16,
|
||||
) -> Result<(), Error> {
|
||||
if !(0..=4).contains(&new_status) {
|
||||
if new_status > 4 || new_status < 0 {
|
||||
return Err(Error::BadRequest("Invalid status code".to_string()));
|
||||
}
|
||||
self.online_status = new_status;
|
||||
|
|
|
@ -107,7 +107,7 @@ impl MemberBuilder {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Clone)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Member {
|
||||
pub uuid: Uuid,
|
||||
pub nickname: Option<String>,
|
||||
|
@ -150,17 +150,14 @@ impl Member {
|
|||
pub async fn fetch_one(
|
||||
conn: &mut Conn,
|
||||
cache_pool: &redis::Client,
|
||||
me: Option<&Me>,
|
||||
me: &Me,
|
||||
user_uuid: Uuid,
|
||||
guild_uuid: Uuid,
|
||||
) -> Result<Self, Error> {
|
||||
let member: MemberBuilder;
|
||||
let user: UserBuilder;
|
||||
let friend: Option<Friend>;
|
||||
use friends::dsl as fdsl;
|
||||
use guild_members::dsl;
|
||||
if let Some(me) = me {
|
||||
(member, user, friend) = dsl::guild_members
|
||||
let (member, user, friend): (MemberBuilder, UserBuilder, Option<Friend>) =
|
||||
dsl::guild_members
|
||||
.filter(dsl::guild_uuid.eq(guild_uuid))
|
||||
.filter(dsl::user_uuid.eq(user_uuid))
|
||||
.inner_join(users::table)
|
||||
|
@ -177,17 +174,6 @@ impl Member {
|
|||
))
|
||||
.get_result(conn)
|
||||
.await?;
|
||||
} else {
|
||||
(member, user) = dsl::guild_members
|
||||
.filter(dsl::guild_uuid.eq(guild_uuid))
|
||||
.filter(dsl::user_uuid.eq(user_uuid))
|
||||
.inner_join(users::table)
|
||||
.select((MemberBuilder::as_select(), UserBuilder::as_select()))
|
||||
.get_result(conn)
|
||||
.await?;
|
||||
|
||||
friend = None;
|
||||
}
|
||||
|
||||
member
|
||||
.build_with_parts(conn, cache_pool, user, friend)
|
||||
|
|
|
@ -1,15 +1,10 @@
|
|||
use diesel::{ExpressionMethods, Insertable, QueryDsl, Queryable, Selectable};
|
||||
use diesel_async::RunQueryDsl;
|
||||
use diesel::{Insertable, Queryable, Selectable};
|
||||
use serde::Serialize;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{
|
||||
Conn,
|
||||
error::Error,
|
||||
schema::{channels, guilds, messages},
|
||||
};
|
||||
use crate::{Conn, error::Error, schema::messages};
|
||||
|
||||
use super::Member;
|
||||
use super::User;
|
||||
|
||||
#[derive(Clone, Queryable, Selectable, Insertable)]
|
||||
#[diesel(table_name = messages)]
|
||||
|
@ -28,16 +23,7 @@ impl MessageBuilder {
|
|||
conn: &mut Conn,
|
||||
cache_pool: &redis::Client,
|
||||
) -> Result<Message, Error> {
|
||||
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?;
|
||||
let user = User::fetch_one(conn, cache_pool, self.user_uuid).await?;
|
||||
|
||||
Ok(Message {
|
||||
uuid: self.uuid,
|
||||
|
@ -45,7 +31,7 @@ impl MessageBuilder {
|
|||
user_uuid: self.user_uuid,
|
||||
message: self.message.clone(),
|
||||
reply_to: self.reply_to,
|
||||
member,
|
||||
user,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -57,5 +43,5 @@ pub struct Message {
|
|||
user_uuid: Uuid,
|
||||
message: String,
|
||||
reply_to: Option<Uuid>,
|
||||
member: Member,
|
||||
user: User,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue