]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/impls/private_message.rs
Make functions work with both connection and pool (#3420)
[lemmy.git] / crates / db_schema / src / impls / private_message.rs
index a30ac20e534f521365cf23f652672bc132646931..2febaa7698f0ae51d995f9be94f03fba4aff8396 100644 (file)
@@ -2,7 +2,7 @@ use crate::{
   newtypes::{DbUrl, PersonId, PrivateMessageId},
   schema::private_message::dsl::{ap_id, private_message, read, recipient_id},
   source::private_message::{PrivateMessage, PrivateMessageInsertForm, PrivateMessageUpdateForm},
-  traits::{Crud, DeleteableOrRemoveable},
+  traits::Crud,
   utils::{get_conn, DbPool},
 };
 use diesel::{dsl::insert_into, result::Error, ExpressionMethods, QueryDsl};
@@ -15,7 +15,10 @@ impl Crud for PrivateMessage {
   type InsertForm = PrivateMessageInsertForm;
   type UpdateForm = PrivateMessageUpdateForm;
   type IdType = PrivateMessageId;
-  async fn read(pool: &DbPool, private_message_id: PrivateMessageId) -> Result<Self, Error> {
+  async fn read(
+    pool: &mut DbPool<'_>,
+    private_message_id: PrivateMessageId,
+  ) -> Result<Self, Error> {
     let conn = &mut get_conn(pool).await?;
     private_message
       .find(private_message_id)
@@ -23,7 +26,7 @@ impl Crud for PrivateMessage {
       .await
   }
 
-  async fn create(pool: &DbPool, form: &Self::InsertForm) -> Result<Self, Error> {
+  async fn create(pool: &mut DbPool<'_>, form: &Self::InsertForm) -> Result<Self, Error> {
     let conn = &mut get_conn(pool).await?;
     insert_into(private_message)
       .values(form)
@@ -35,7 +38,7 @@ impl Crud for PrivateMessage {
   }
 
   async fn update(
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
     private_message_id: PrivateMessageId,
     form: &Self::UpdateForm,
   ) -> Result<Self, Error> {
@@ -45,7 +48,7 @@ impl Crud for PrivateMessage {
       .get_result::<Self>(conn)
       .await
   }
-  async fn delete(pool: &DbPool, pm_id: Self::IdType) -> Result<usize, Error> {
+  async fn delete(pool: &mut DbPool<'_>, pm_id: Self::IdType) -> Result<usize, Error> {
     let conn = &mut get_conn(pool).await?;
     diesel::delete(private_message.find(pm_id))
       .execute(conn)
@@ -55,7 +58,7 @@ impl Crud for PrivateMessage {
 
 impl PrivateMessage {
   pub async fn mark_all_as_read(
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
     for_recipient_id: PersonId,
   ) -> Result<Vec<PrivateMessage>, Error> {
     let conn = &mut get_conn(pool).await?;
@@ -70,7 +73,7 @@ impl PrivateMessage {
   }
 
   pub async fn read_from_apub_id(
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
     object_id: Url,
   ) -> Result<Option<Self>, LemmyError> {
     let conn = &mut get_conn(pool).await?;
@@ -86,13 +89,6 @@ impl PrivateMessage {
   }
 }
 
-impl DeleteableOrRemoveable for PrivateMessage {
-  fn blank_out_deleted_or_removed_info(mut self) -> Self {
-    self.content = String::new();
-    self
-  }
-}
-
 #[cfg(test)]
 mod tests {
   use crate::{
@@ -110,6 +106,7 @@ mod tests {
   #[serial]
   async fn test_crud() {
     let pool = &build_db_pool_for_tests().await;
+    let pool = &mut pool.into();
 
     let inserted_instance = Instance::read_or_create(pool, "my_domain.tld".to_string())
       .await