X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fdb_schema%2Fsrc%2Fimpls%2Fperson_mention.rs;h=e83de1feb4dd7ae54e68f6905b4e707d39bd6d9b;hb=235cc8b22897bfb3e71ba3dbd725d36863fea8ba;hp=fc91c76e5b3424a550f5a8f2e8ae8994ef86cbe0;hpb=276a8c2bd3e4fd1323e66b808675cf14cf6f75c5;p=lemmy.git diff --git a/crates/db_schema/src/impls/person_mention.rs b/crates/db_schema/src/impls/person_mention.rs index fc91c76e..e83de1fe 100644 --- a/crates/db_schema/src/impls/person_mention.rs +++ b/crates/db_schema/src/impls/person_mention.rs @@ -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 { 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 { 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 { 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 { - use crate::schema::person_mention::dsl::*; - diesel::update(person_mention.find(person_mention_id)) - .set(read.eq(new_read)) - .get_result::(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::(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);