Prevent fetching messages from other channels. Change channel tag to channel_type.

This commit is contained in:
Paul Makles
2021-01-19 19:54:37 +00:00
parent 3a63d502d9
commit 5ab329dfdd
5 changed files with 11 additions and 6 deletions

View File

@@ -6,7 +6,7 @@ use rocket_contrib::json::JsonValue;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
#[serde(tag = "channel_type")]
pub enum Channel {
SavedMessages {
#[serde(rename = "_id")]

View File

@@ -47,8 +47,13 @@ impl Ref {
self.fetch("channels").await
}
pub async fn fetch_message(&self) -> Result<Message> {
self.fetch("messages").await
pub async fn fetch_message(&self, channel: &Channel) -> Result<Message> {
let message: Message = self.fetch("messages").await?;
if &message.channel != channel.id() {
Err(Error::InvalidOperation)
} else {
Ok(message)
}
}
}