diff --git a/migrations/2025-08-04-180235_add_status_to_user/down.sql b/migrations/2025-08-04-180235_add_status_to_user/down.sql deleted file mode 100644 index 163f7f1..0000000 --- a/migrations/2025-08-04-180235_add_status_to_user/down.sql +++ /dev/null @@ -1,2 +0,0 @@ --- This file should undo anything in `up.sql` -ALTER TABLE users DROP COLUMN online_status; diff --git a/migrations/2025-08-04-180235_add_status_to_user/up.sql b/migrations/2025-08-04-180235_add_status_to_user/up.sql deleted file mode 100644 index ac16d77..0000000 --- a/migrations/2025-08-04-180235_add_status_to_user/up.sql +++ /dev/null @@ -1,2 +0,0 @@ --- Your SQL goes here -ALTER TABLE users ADD COLUMN online_status INT2 NOT NULL DEFAULT 0; diff --git a/src/api/v1/me/mod.rs b/src/api/v1/me/mod.rs index 9d75d26..86d3d9e 100644 --- a/src/api/v1/me/mod.rs +++ b/src/api/v1/me/mod.rs @@ -49,7 +49,6 @@ struct NewInfo { email: Option, pronouns: Option, about: Option, - online_status: Option, } pub async fn update( @@ -111,10 +110,5 @@ pub async fn update( .await?; } - if let Some(online_status) = &json.online_status { - me.set_online_status(&mut conn, &app_state.cache_pool, *online_status) - .await?; - } - Ok(StatusCode::OK) } diff --git a/src/objects/me.rs b/src/objects/me.rs index 167e61e..d03e08b 100644 --- a/src/objects/me.rs +++ b/src/objects/me.rs @@ -29,7 +29,6 @@ pub struct Me { avatar: Option, pronouns: Option, about: Option, - online_status: i16, pub email: String, pub email_verified: bool, } @@ -278,35 +277,6 @@ impl Me { Ok(()) } - pub async fn set_online_status( - &mut self, - conn: &mut Conn, - cache_pool: &redis::Client, - new_status: i16, - ) -> Result<(), Error> { - if !(0..=4).contains(&new_status) { - return Err(Error::BadRequest("Invalid status code".to_string())); - } - self.online_status = new_status; - - use users::dsl; - update(users::table) - .filter(dsl::uuid.eq(self.uuid)) - .set(dsl::online_status.eq(new_status)) - .execute(conn) - .await?; - - if cache_pool - .get_cache_key::(self.uuid.to_string()) - .await - .is_ok() - { - cache_pool.del_cache_key(self.uuid.to_string()).await? - } - - Ok(()) - } - pub async fn friends_with( &self, conn: &mut Conn, diff --git a/src/objects/member.rs b/src/objects/member.rs index f7e56da..1247ea2 100644 --- a/src/objects/member.rs +++ b/src/objects/member.rs @@ -107,7 +107,7 @@ impl MemberBuilder { } } -#[derive(Serialize, Deserialize, Clone)] +#[derive(Serialize, Deserialize)] pub struct Member { pub uuid: Uuid, pub nickname: Option, @@ -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 { - let member: MemberBuilder; - let user: UserBuilder; - let friend: Option; 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) = + 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) diff --git a/src/objects/message.rs b/src/objects/message.rs index f30f14d..a5224e0 100644 --- a/src/objects/message.rs +++ b/src/objects/message.rs @@ -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 { - 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, - member: Member, + user: User, } diff --git a/src/objects/user.rs b/src/objects/user.rs index c91b809..596a785 100644 --- a/src/objects/user.rs +++ b/src/objects/user.rs @@ -18,7 +18,6 @@ pub struct UserBuilder { avatar: Option, pronouns: Option, about: Option, - online_status: i16, } impl UserBuilder { @@ -30,7 +29,6 @@ impl UserBuilder { avatar: self.avatar, pronouns: self.pronouns, about: self.about, - online_status: self.online_status, friends_since: None, } } @@ -44,7 +42,6 @@ pub struct User { avatar: Option, pronouns: Option, about: Option, - online_status: i16, pub friends_since: Option>, } diff --git a/src/schema.rs b/src/schema.rs index 88f6155..413f3f1 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -157,7 +157,6 @@ diesel::table! { pronouns -> Nullable, #[max_length = 200] about -> Nullable, - online_status -> Int2, } }