feat(safety): add global event for report creation (closes #225)

This commit is contained in:
Paul Makles
2023-02-23 17:58:05 +01:00
parent 2de37b23c1
commit 73af105feb
3 changed files with 11 additions and 5 deletions

View File

@@ -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<DataReportContent>)
db.insert_report(&report).await?;
EventV1::ReportCreate(report).global().await;
Ok(())
}

View File

@@ -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),
}

View File

@@ -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")]