]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/impls/person_mention.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_schema / src / impls / person_mention.rs
index fc91c76e5b3424a550f5a8f2e8ae8994ef86cbe0..e83de1feb4dd7ae54e68f6905b4e707d39bd6d9b 100644 (file)
@@ -6,7 +6,8 @@ use crate::{
 use diesel::{dsl::*, result::Error, *};
 
 impl Crud for PersonMention {
-  type Form = PersonMentionForm;
+  type InsertForm = PersonMentionInsertForm;
+  type UpdateForm = PersonMentionUpdateForm;
   type IdType = PersonMentionId;
   fn read(conn: &mut PgConnection, person_mention_id: PersonMentionId) -> Result<Self, Error> {
     use crate::schema::person_mention::dsl::*;
@@ -15,7 +16,7 @@ impl Crud for PersonMention {
 
   fn create(
     conn: &mut PgConnection,
-    person_mention_form: &PersonMentionForm,
+    person_mention_form: &Self::InsertForm,
   ) -> Result<Self, Error> {
     use crate::schema::person_mention::dsl::*;
     // since the return here isnt utilized, we dont need to do an update
@@ -31,7 +32,7 @@ impl Crud for PersonMention {
   fn update(
     conn: &mut PgConnection,
     person_mention_id: PersonMentionId,
-    person_mention_form: &PersonMentionForm,
+    person_mention_form: &Self::UpdateForm,
   ) -> Result<Self, Error> {
     use crate::schema::person_mention::dsl::*;
     diesel::update(person_mention.find(person_mention_id))
@@ -41,17 +42,6 @@ impl Crud for PersonMention {
 }
 
 impl PersonMention {
-  pub fn update_read(
-    conn: &mut PgConnection,
-    person_mention_id: PersonMentionId,
-    new_read: bool,
-  ) -> Result<PersonMention, Error> {
-    use crate::schema::person_mention::dsl::*;
-    diesel::update(person_mention.find(person_mention_id))
-      .set(read.eq(new_read))
-      .get_result::<Self>(conn)
-  }
-
   pub fn mark_all_as_read(
     conn: &mut PgConnection,
     for_recipient_id: PersonId,
@@ -65,6 +55,7 @@ impl PersonMention {
     .set(read.eq(true))
     .get_results::<Self>(conn)
   }
+
   pub fn read_by_comment_and_person(
     conn: &mut PgConnection,
     for_comment_id: CommentId,
@@ -83,7 +74,8 @@ mod tests {
   use crate::{
     source::{
       comment::*,
-      community::{Community, CommunityForm},
+      community::{Community, CommunityInsertForm},
+      instance::Instance,
       person::*,
       person_mention::*,
       post::*,
@@ -98,50 +90,50 @@ mod tests {
   fn test_crud() {
     let conn = &mut establish_unpooled_connection();
 
-    let new_person = PersonForm {
-      name: "terrylake".into(),
-      public_key: Some("pubkey".to_string()),
-      ..PersonForm::default()
-    };
+    let inserted_instance = Instance::create(conn, "my_domain.tld").unwrap();
+
+    let new_person = PersonInsertForm::builder()
+      .name("terrylake".into())
+      .public_key("pubkey".to_string())
+      .instance_id(inserted_instance.id)
+      .build();
 
     let inserted_person = Person::create(conn, &new_person).unwrap();
 
-    let recipient_form = PersonForm {
-      name: "terrylakes recipient".into(),
-      public_key: Some("pubkey".to_string()),
-      ..PersonForm::default()
-    };
+    let recipient_form = PersonInsertForm::builder()
+      .name("terrylakes recipient".into())
+      .public_key("pubkey".to_string())
+      .instance_id(inserted_instance.id)
+      .build();
 
     let inserted_recipient = Person::create(conn, &recipient_form).unwrap();
 
-    let new_community = CommunityForm {
-      name: "test community lake".to_string(),
-      title: "nada".to_owned(),
-      public_key: Some("pubkey".to_string()),
-      ..CommunityForm::default()
-    };
+    let new_community = CommunityInsertForm::builder()
+      .name("test community lake".to_string())
+      .title("nada".to_owned())
+      .public_key("pubkey".to_string())
+      .instance_id(inserted_instance.id)
+      .build();
 
     let inserted_community = Community::create(conn, &new_community).unwrap();
 
-    let new_post = PostForm {
-      name: "A test post".into(),
-      creator_id: inserted_person.id,
-      community_id: inserted_community.id,
-      ..PostForm::default()
-    };
+    let new_post = PostInsertForm::builder()
+      .name("A test post".into())
+      .creator_id(inserted_person.id)
+      .community_id(inserted_community.id)
+      .build();
 
     let inserted_post = Post::create(conn, &new_post).unwrap();
 
-    let comment_form = CommentForm {
-      content: "A test comment".into(),
-      creator_id: inserted_person.id,
-      post_id: inserted_post.id,
-      ..CommentForm::default()
-    };
+    let comment_form = CommentInsertForm::builder()
+      .content("A test comment".into())
+      .creator_id(inserted_person.id)
+      .post_id(inserted_post.id)
+      .build();
 
     let inserted_comment = Comment::create(conn, &comment_form, None).unwrap();
 
-    let person_mention_form = PersonMentionForm {
+    let person_mention_form = PersonMentionInsertForm {
       recipient_id: inserted_recipient.id,
       comment_id: inserted_comment.id,
       read: None,
@@ -158,13 +150,16 @@ mod tests {
     };
 
     let read_mention = PersonMention::read(conn, inserted_mention.id).unwrap();
+
+    let person_mention_update_form = PersonMentionUpdateForm { read: Some(false) };
     let updated_mention =
-      PersonMention::update(conn, inserted_mention.id, &person_mention_form).unwrap();
+      PersonMention::update(conn, inserted_mention.id, &person_mention_update_form).unwrap();
     Comment::delete(conn, inserted_comment.id).unwrap();
     Post::delete(conn, inserted_post.id).unwrap();
     Community::delete(conn, inserted_community.id).unwrap();
     Person::delete(conn, inserted_person.id).unwrap();
     Person::delete(conn, inserted_recipient.id).unwrap();
+    Instance::delete(conn, inserted_instance.id).unwrap();
 
     assert_eq!(expected_mention, read_mention);
     assert_eq!(expected_mention, inserted_mention);