diff --git a/crates/delta/src/routes/safety/report_content.rs b/crates/delta/src/routes/safety/report_content.rs index 25e97833..0483b2b4 100644 --- a/crates/delta/src/routes/safety/report_content.rs +++ b/crates/delta/src/routes/safety/report_content.rs @@ -1,3 +1,4 @@ +use revolt_quark::events::client::EventV1; use revolt_quark::models::report::ReportedContent; use revolt_quark::models::snapshot::{Snapshot, SnapshotContent}; use revolt_quark::models::{Report, User}; @@ -121,5 +122,7 @@ pub async fn report_content(db: &Db, user: User, data: Json) db.insert_report(&report).await?; + EventV1::ReportCreate(report).global().await; + Ok(()) } diff --git a/crates/quark/src/events/client.rs b/crates/quark/src/events/client.rs index ee91fab1..d6c6b018 100644 --- a/crates/quark/src/events/client.rs +++ b/crates/quark/src/events/client.rs @@ -6,7 +6,7 @@ use crate::models::message::{AppendMessage, PartialMessage}; use crate::models::server::{FieldsRole, FieldsServer, PartialRole, PartialServer}; use crate::models::server_member::{FieldsMember, MemberCompositeKey, PartialMember}; use crate::models::user::{FieldsUser, PartialUser, RelationshipStatus}; -use crate::models::{Channel, Emoji, Member, Message, Server, User, UserSettings}; +use crate::models::{Channel, Emoji, Member, Message, Report, Server, User, UserSettings}; use crate::Error; /// WebSocket Client Errors @@ -213,6 +213,9 @@ pub enum EventV1 { /// Delete emoji EmojiDelete { id: String }, + /// New report + ReportCreate(Report), + /// Auth events Auth(AuthifierEvent), } diff --git a/crates/quark/src/models/safety/report.rs b/crates/quark/src/models/safety/report.rs index 069f3036..db4552e8 100644 --- a/crates/quark/src/models/safety/report.rs +++ b/crates/quark/src/models/safety/report.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; /// Reason for reporting content (message or server) -#[derive(Serialize, Deserialize, JsonSchema, Debug)] +#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)] pub enum ContentReportReason { /// No reason has been specified NoneSpecified, @@ -23,7 +23,7 @@ pub enum ContentReportReason { } /// Reason for reporting a user -#[derive(Serialize, Deserialize, JsonSchema, Debug)] +#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)] pub enum UserReportReason { /// No reason has been specified NoneSpecified, @@ -44,7 +44,7 @@ pub enum UserReportReason { Underage, } -#[derive(Serialize, Deserialize, JsonSchema, Debug)] +#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)] #[serde(tag = "type")] pub enum ReportedContent { /// Report a message @@ -71,7 +71,7 @@ pub enum ReportedContent { } /// User-generated platform moderation report. -#[derive(Serialize, Deserialize, JsonSchema, Debug)] +#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)] pub struct Report { /// Unique Id #[serde(rename = "_id")]