From 2051c8ce45fcf75efd7bb11520c03039c1649111 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Wed, 8 Jun 2022 14:14:16 +0100 Subject: [PATCH] chore(refactor): validate further up the code --- crates/delta/src/routes/channels/message_edit.rs | 4 ---- crates/delta/src/routes/channels/message_send.rs | 4 ---- crates/quark/src/impl/generic/channels/message.rs | 6 +++++- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/crates/delta/src/routes/channels/message_edit.rs b/crates/delta/src/routes/channels/message_edit.rs index 09504e45..e02b5dc8 100644 --- a/crates/delta/src/routes/channels/message_edit.rs +++ b/crates/delta/src/routes/channels/message_edit.rs @@ -71,10 +71,6 @@ pub async fn req( new_embeds.clear(); for embed in embeds { - embed - .validate() - .map_err(|error| Error::FailedValidation { error })?; - new_embeds.push(embed.clone().into_embed(db, message.id.clone()).await?); } } diff --git a/crates/delta/src/routes/channels/message_send.rs b/crates/delta/src/routes/channels/message_send.rs index a5be09e6..be6e28d2 100644 --- a/crates/delta/src/routes/channels/message_send.rs +++ b/crates/delta/src/routes/channels/message_send.rs @@ -138,10 +138,6 @@ pub async fn message_send( let mut embeds = vec![]; if let Some(sendable_embeds) = data.embeds { for sendable_embed in sendable_embeds { - sendable_embed - .validate() - .map_err(|error| Error::FailedValidation { error })?; - embeds.push(sendable_embed.into_embed(db, message_id.clone()).await?) } } diff --git a/crates/quark/src/impl/generic/channels/message.rs b/crates/quark/src/impl/generic/channels/message.rs index 710fecea..1426b42f 100644 --- a/crates/quark/src/impl/generic/channels/message.rs +++ b/crates/quark/src/impl/generic/channels/message.rs @@ -2,6 +2,7 @@ use std::collections::HashSet; use serde_json::json; use ulid::Ulid; +use validator::Validate; use crate::{ events::client::EventV1, @@ -17,7 +18,7 @@ use crate::{ january::{Embed, Text}, push::PushNotification, }, - Database, Result, + Database, Error, Result, }; impl Message { @@ -232,6 +233,9 @@ impl From for String { impl SendableEmbed { pub async fn into_embed(self, db: &Database, message_id: String) -> Result { + self.validate() + .map_err(|error| Error::FailedValidation { error })?; + let media = if let Some(id) = self.media { Some( db.find_and_use_attachment(&id, "attachments", "message", &message_id)