Add SavedMessages channel type, add create DM.

This commit is contained in:
Paul Makles
2020-12-29 14:15:44 +00:00
parent eb382fa1ec
commit 84d09db9b3
7 changed files with 84 additions and 9 deletions

View File

@@ -1,4 +1,6 @@
use serde::{Deserialize, Serialize};
use crate::{database::get_collection, util::result::{Error, Result}};
use mongodb::bson::to_document;
/*#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct LastMessage {
@@ -33,6 +35,11 @@ pub struct Channel {
#[derive(Serialize, Deserialize, Debug)]
#[serde(tag = "type")]
pub enum Channel {
SavedMessages {
#[serde(rename = "_id")]
id: String,
user: String
},
DirectMessage {
#[serde(rename = "_id")]
id: String,
@@ -48,3 +55,18 @@ pub enum Channel {
recipients: Vec<String>,
}
}
impl Channel {
pub async fn save(&self) -> Result<()> {
get_collection("channels")
.insert_one(
to_document(&self)
.map_err(|_| Error::DatabaseError { operation: "to_bson", with: "channel" })?,
None
)
.await
.map_err(|_| Error::DatabaseError { operation: "insert_one", with: "channel" })?;
Ok(())
}
}

View File

@@ -7,6 +7,7 @@ use rocket::request::{self, FromRequest, Outcome, Request};
#[derive(Serialize, Deserialize, Debug)]
pub struct Relationship {
#[serde(rename = "_id")]
pub id: String,
pub status: u8,
}