]> Untitled Git - lemmy.git/blobdiff - crates/db_views/src/post_report_view.rs
Diesel 2.0.0 upgrade (#2452)
[lemmy.git] / crates / db_views / src / post_report_view.rs
index 1a519fff5483c232cf5b2e83e8106a08826b37e1..472795b5049a5ab44dd8b4956b603132ae57b8cd 100644 (file)
@@ -8,8 +8,6 @@ use lemmy_db_schema::{
     community_moderator,
     community_person_ban,
     person,
-    person_alias_1,
-    person_alias_2,
     post,
     post_aggregates,
     post_like,
@@ -17,7 +15,7 @@ use lemmy_db_schema::{
   },
   source::{
     community::{Community, CommunityPersonBan, CommunitySafe},
-    person::{Person, PersonAlias1, PersonAlias2, PersonSafe, PersonSafeAlias1, PersonSafeAlias2},
+    person::{Person, PersonSafe},
     post::Post,
     post_report::PostReport,
   },
@@ -31,11 +29,11 @@ type PostReportViewTuple = (
   Post,
   CommunitySafe,
   PersonSafe,
-  PersonSafeAlias1,
+  PersonSafe,
   Option<CommunityPersonBan>,
   Option<i16>,
   PostAggregates,
-  Option<PersonSafeAlias2>,
+  Option<PersonSafe>,
 );
 
 impl PostReportView {
@@ -43,10 +41,12 @@ impl PostReportView {
   ///
   /// * `report_id` - the report id to obtain
   pub fn read(
-    conn: &PgConnection,
+    conn: &mut PgConnection,
     report_id: PostReportId,
     my_person_id: PersonId,
   ) -> Result<Self, Error> {
+    let (person_alias_1, person_alias_2) = diesel::alias!(person as person1, person as person2);
+
     let (
       post_report,
       post,
@@ -62,7 +62,7 @@ impl PostReportView {
       .inner_join(post::table)
       .inner_join(community::table.on(post::community_id.eq(community::id)))
       .inner_join(person::table.on(post_report::creator_id.eq(person::id)))
-      .inner_join(person_alias_1::table.on(post::creator_id.eq(person_alias_1::id)))
+      .inner_join(person_alias_1.on(post::creator_id.eq(person_alias_1.field(person::id))))
       .left_join(
         community_person_ban::table.on(
           post::community_id
@@ -84,18 +84,18 @@ impl PostReportView {
       )
       .inner_join(post_aggregates::table.on(post_report::post_id.eq(post_aggregates::post_id)))
       .left_join(
-        person_alias_2::table.on(post_report::resolver_id.eq(person_alias_2::id.nullable())),
+        person_alias_2.on(post_report::resolver_id.eq(person_alias_2.field(person::id).nullable())),
       )
       .select((
         post_report::all_columns,
         post::all_columns,
         Community::safe_columns_tuple(),
         Person::safe_columns_tuple(),
-        PersonAlias1::safe_columns_tuple(),
+        person_alias_1.fields(Person::safe_columns_tuple()),
         community_person_ban::all_columns.nullable(),
         post_like::score.nullable(),
         post_aggregates::all_columns,
-        PersonAlias2::safe_columns_tuple().nullable(),
+        person_alias_2.fields(Person::safe_columns_tuple().nullable()),
       ))
       .first::<PostReportViewTuple>(conn)?;
 
@@ -116,7 +116,7 @@ impl PostReportView {
 
   /// returns the current unresolved post report count for the communities you mod
   pub fn get_report_count(
-    conn: &PgConnection,
+    conn: &mut PgConnection,
     my_person_id: PersonId,
     admin: bool,
     community_id: Option<CommunityId>,
@@ -153,7 +153,7 @@ impl PostReportView {
 #[builder(field_defaults(default))]
 pub struct PostReportQuery<'a> {
   #[builder(!default)]
-  conn: &'a PgConnection,
+  conn: &'a mut PgConnection,
   #[builder(!default)]
   my_person_id: PersonId,
   #[builder(!default)]
@@ -166,11 +166,13 @@ pub struct PostReportQuery<'a> {
 
 impl<'a> PostReportQuery<'a> {
   pub fn list(self) -> Result<Vec<PostReportView>, Error> {
+    let (person_alias_1, person_alias_2) = diesel::alias!(person as person1, person as person2);
+
     let mut query = post_report::table
       .inner_join(post::table)
       .inner_join(community::table.on(post::community_id.eq(community::id)))
       .inner_join(person::table.on(post_report::creator_id.eq(person::id)))
-      .inner_join(person_alias_1::table.on(post::creator_id.eq(person_alias_1::id)))
+      .inner_join(person_alias_1.on(post::creator_id.eq(person_alias_1.field(person::id))))
       .left_join(
         community_person_ban::table.on(
           post::community_id
@@ -192,18 +194,20 @@ impl<'a> PostReportQuery<'a> {
       )
       .inner_join(post_aggregates::table.on(post_report::post_id.eq(post_aggregates::post_id)))
       .left_join(
-        person_alias_2::table.on(post_report::resolver_id.eq(person_alias_2::id.nullable())),
+        person_alias_2.on(post_report::resolver_id.eq(person_alias_2.field(person::id).nullable())),
       )
       .select((
         post_report::all_columns,
         post::all_columns,
         Community::safe_columns_tuple(),
         Person::safe_columns_tuple(),
-        PersonAlias1::safe_columns_tuple(),
+        person_alias_1.fields(Person::safe_columns_tuple()),
         community_person_ban::all_columns.nullable(),
         post_like::score.nullable(),
         post_aggregates::all_columns,
-        PersonAlias2::safe_columns_tuple().nullable(),
+        person_alias_2
+          .fields(Person::safe_columns_tuple())
+          .nullable(),
       ))
       .into_boxed();
 
@@ -280,7 +284,7 @@ mod tests {
   #[test]
   #[serial]
   fn test_crud() {
-    let conn = establish_unpooled_connection();
+    let conn = &mut establish_unpooled_connection();
 
     let new_person = PersonForm {
       name: "timmy_prv".into(),
@@ -288,7 +292,7 @@ mod tests {
       ..PersonForm::default()
     };
 
-    let inserted_timmy = Person::create(&conn, &new_person).unwrap();
+    let inserted_timmy = Person::create(conn, &new_person).unwrap();
 
     let new_person_2 = PersonForm {
       name: "sara_prv".into(),
@@ -296,7 +300,7 @@ mod tests {
       ..PersonForm::default()
     };
 
-    let inserted_sara = Person::create(&conn, &new_person_2).unwrap();
+    let inserted_sara = Person::create(conn, &new_person_2).unwrap();
 
     // Add a third person, since new ppl can only report something once.
     let new_person_3 = PersonForm {
@@ -305,7 +309,7 @@ mod tests {
       ..PersonForm::default()
     };
 
-    let inserted_jessica = Person::create(&conn, &new_person_3).unwrap();
+    let inserted_jessica = Person::create(conn, &new_person_3).unwrap();
 
     let new_community = CommunityForm {
       name: "test community prv".to_string(),
@@ -314,7 +318,7 @@ mod tests {
       ..CommunityForm::default()
     };
 
-    let inserted_community = Community::create(&conn, &new_community).unwrap();
+    let inserted_community = Community::create(conn, &new_community).unwrap();
 
     // Make timmy a mod
     let timmy_moderator_form = CommunityModeratorForm {
@@ -322,7 +326,7 @@ mod tests {
       person_id: inserted_timmy.id,
     };
 
-    let _inserted_moderator = CommunityModerator::join(&conn, &timmy_moderator_form).unwrap();
+    let _inserted_moderator = CommunityModerator::join(conn, &timmy_moderator_form).unwrap();
 
     let new_post = PostForm {
       name: "A test post crv".into(),
@@ -331,7 +335,7 @@ mod tests {
       ..PostForm::default()
     };
 
-    let inserted_post = Post::create(&conn, &new_post).unwrap();
+    let inserted_post = Post::create(conn, &new_post).unwrap();
 
     // sara reports
     let sara_report_form = PostReportForm {
@@ -343,7 +347,7 @@ mod tests {
       reason: "from sara".into(),
     };
 
-    let inserted_sara_report = PostReport::report(&conn, &sara_report_form).unwrap();
+    let inserted_sara_report = PostReport::report(conn, &sara_report_form).unwrap();
 
     // jessica reports
     let jessica_report_form = PostReportForm {
@@ -355,12 +359,12 @@ mod tests {
       reason: "from jessica".into(),
     };
 
-    let inserted_jessica_report = PostReport::report(&conn, &jessica_report_form).unwrap();
+    let inserted_jessica_report = PostReport::report(conn, &jessica_report_form).unwrap();
 
-    let agg = PostAggregates::read(&conn, inserted_post.id).unwrap();
+    let agg = PostAggregates::read(conn, inserted_post.id).unwrap();
 
     let read_jessica_report_view =
-      PostReportView::read(&conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
+      PostReportView::read(conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
     let expected_jessica_report_view = PostReportView {
       post_report: inserted_jessica_report.to_owned(),
       post: inserted_post.to_owned(),
@@ -401,7 +405,7 @@ mod tests {
         matrix_user_id: None,
         ban_expires: None,
       },
-      post_creator: PersonSafeAlias1 {
+      post_creator: PersonSafe {
         id: inserted_timmy.id,
         name: inserted_timmy.name.to_owned(),
         display_name: None,
@@ -466,7 +470,7 @@ mod tests {
 
     // Do a batch read of timmys reports
     let reports = PostReportQuery::builder()
-      .conn(&conn)
+      .conn(conn)
       .my_person_id(inserted_timmy.id)
       .admin(false)
       .build()
@@ -483,13 +487,13 @@ mod tests {
 
     // Make sure the counts are correct
     let report_count =
-      PostReportView::get_report_count(&conn, inserted_timmy.id, false, None).unwrap();
+      PostReportView::get_report_count(conn, inserted_timmy.id, false, None).unwrap();
     assert_eq!(2, report_count);
 
     // Try to resolve the report
-    PostReport::resolve(&conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
+    PostReport::resolve(conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
     let read_jessica_report_view_after_resolve =
-      PostReportView::read(&conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
+      PostReportView::read(conn, inserted_jessica_report.id, inserted_timmy.id).unwrap();
 
     let mut expected_jessica_report_view_after_resolve = expected_jessica_report_view;
     expected_jessica_report_view_after_resolve
@@ -501,7 +505,7 @@ mod tests {
     expected_jessica_report_view_after_resolve
       .post_report
       .updated = read_jessica_report_view_after_resolve.post_report.updated;
-    expected_jessica_report_view_after_resolve.resolver = Some(PersonSafeAlias2 {
+    expected_jessica_report_view_after_resolve.resolver = Some(PersonSafe {
       id: inserted_timmy.id,
       name: inserted_timmy.name.to_owned(),
       display_name: None,
@@ -530,7 +534,7 @@ mod tests {
     // Do a batch read of timmys reports
     // It should only show saras, which is unresolved
     let reports_after_resolve = PostReportQuery::builder()
-      .conn(&conn)
+      .conn(conn)
       .my_person_id(inserted_timmy.id)
       .admin(false)
       .build()
@@ -540,12 +544,12 @@ mod tests {
 
     // Make sure the counts are correct
     let report_count_after_resolved =
-      PostReportView::get_report_count(&conn, inserted_timmy.id, false, None).unwrap();
+      PostReportView::get_report_count(conn, inserted_timmy.id, false, None).unwrap();
     assert_eq!(1, report_count_after_resolved);
 
-    Person::delete(&conn, inserted_timmy.id).unwrap();
-    Person::delete(&conn, inserted_sara.id).unwrap();
-    Person::delete(&conn, inserted_jessica.id).unwrap();
-    Community::delete(&conn, inserted_community.id).unwrap();
+    Person::delete(conn, inserted_timmy.id).unwrap();
+    Person::delete(conn, inserted_sara.id).unwrap();
+    Person::delete(conn, inserted_jessica.id).unwrap();
+    Community::delete(conn, inserted_community.id).unwrap();
   }
 }