From 3bfead4ff16bf403d089f15b3496e52a20a02980 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Sat, 5 Aug 2023 17:03:16 +0100 Subject: [PATCH] feat(core/database): system message helper --- crates/core/database/src/models/messages/model.rs | 14 ++++++++++++++ .../database/src/models/server_members/model.rs | 10 +++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/crates/core/database/src/models/messages/model.rs b/crates/core/database/src/models/messages/model.rs index cd9787bc..b2dfd345 100644 --- a/crates/core/database/src/models/messages/model.rs +++ b/crates/core/database/src/models/messages/model.rs @@ -2,6 +2,7 @@ use indexmap::{IndexMap, IndexSet}; use iso8601_timestamp::Timestamp; use revolt_models::v0::{Embed, MessageSort, MessageWebhook}; use revolt_result::Result; +use ulid::Ulid; use crate::{events::client::EventV1, Database, File}; @@ -194,6 +195,19 @@ impl Message { } } +impl SystemMessage { + pub fn into_message(self, channel: String) -> Message { + Message { + id: Ulid::new().to_string(), + channel, + author: "00000000000000000000000000".to_string(), + system: Some(self), + + ..Default::default() + } + } +} + impl Interactions { /// Validate interactions info is correct /* pub async fn validate( diff --git a/crates/core/database/src/models/server_members/model.rs b/crates/core/database/src/models/server_members/model.rs index 18d8031a..b3f2a274 100644 --- a/crates/core/database/src/models/server_members/model.rs +++ b/crates/core/database/src/models/server_members/model.rs @@ -4,7 +4,7 @@ use revolt_result::{create_error, Result}; use crate::{ events::client::EventV1, util::permissions::DatabasePermissionQuery, Database, File, Server, - User, + SystemMessage, User, }; auto_derived_partial!( @@ -122,18 +122,18 @@ impl Member { .private(user.id.clone()) .await; - if let Some(_id) = server + if let Some(id) = server .system_messages .as_ref() .and_then(|x| x.user_joined.as_ref()) { - /* TODO: SystemMessage::UserJoined { + SystemMessage::UserJoined { id: user.id.clone(), } .into_message(id.to_string()) - .create_no_web_push(db, id, false) + .send_without_notifications(db) .await - .ok(); */ + .ok(); } // Ok(channels)