]> Untitled Git - lemmy.git/blobdiff - crates/api/src/site/search.rs
Tag posts and comments with language (fixes #440) (#2269)
[lemmy.git] / crates / api / src / site / search.rs
index af97978a142f88da50f749b513633dd4024e3a8d..bd04b053c2077b6af96ae5cc5a7b27e41e491cbb 100644 (file)
@@ -11,11 +11,8 @@ use lemmy_db_schema::{
   utils::post_to_comment_sort_type,
   SearchType,
 };
-use lemmy_db_views::{comment_view::CommentQueryBuilder, post_view::PostQueryBuilder};
-use lemmy_db_views_actor::{
-  community_view::CommunityQueryBuilder,
-  person_view::PersonQueryBuilder,
-};
+use lemmy_db_views::{comment_view::CommentQuery, post_view::PostQuery};
+use lemmy_db_views_actor::{community_view::CommunityQuery, person_view::PersonQuery};
 use lemmy_utils::{error::LemmyError, ConnectionId};
 use lemmy_websocket::LemmyContext;
 
@@ -37,15 +34,11 @@ impl Perform for Search {
 
     check_private_instance(&local_user_view, context.pool()).await?;
 
-    let show_nsfw = local_user_view.as_ref().map(|t| t.local_user.show_nsfw);
     let show_bot_accounts = local_user_view
       .as_ref()
       .map(|t| t.local_user.show_bot_accounts);
-    let show_read_posts = local_user_view
-      .as_ref()
-      .map(|t| t.local_user.show_read_posts);
 
-    let person_id = local_user_view.map(|u| u.person.id);
+    let person_id = local_user_view.as_ref().map(|u| u.person.id);
 
     let mut posts = Vec::new();
     let mut comments = Vec::new();
@@ -73,29 +66,29 @@ impl Perform for Search {
     match search_type {
       SearchType::Posts => {
         posts = blocking(context.pool(), move |conn| {
-          PostQueryBuilder::create(conn)
+          PostQuery::builder()
+            .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)
             .my_person_id(person_id)
-            .search_term(q)
+            .search_term(Some(q))
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
       }
       SearchType::Comments => {
         comments = blocking(context.pool(), move |conn| {
-          CommentQueryBuilder::create(conn)
+          CommentQuery::builder()
+            .conn(conn)
             .sort(sort.map(post_to_comment_sort_type))
             .listing_type(listing_type)
-            .search_term(q)
+            .search_term(Some(q))
             .show_bot_accounts(show_bot_accounts)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
@@ -103,30 +96,35 @@ impl Perform for Search {
             .my_person_id(person_id)
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
       }
       SearchType::Communities => {
         communities = blocking(context.pool(), move |conn| {
-          CommunityQueryBuilder::create(conn)
+          CommunityQuery::builder()
+            .conn(conn)
             .sort(sort)
             .listing_type(listing_type)
-            .search_term(q)
+            .search_term(Some(q))
             .my_person_id(person_id)
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
       }
       SearchType::Users => {
         users = blocking(context.pool(), move |conn| {
-          PersonQueryBuilder::create(conn)
+          PersonQuery::builder()
+            .conn(conn)
             .sort(sort)
-            .search_term(q)
+            .search_term(Some(q))
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
@@ -138,19 +136,18 @@ impl Perform for Search {
         let community_actor_id_2 = community_actor_id.to_owned();
 
         posts = blocking(context.pool(), move |conn| {
-          PostQueryBuilder::create(conn)
+          PostQuery::builder()
+            .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
             .community_id(community_id)
             .community_actor_id(community_actor_id_2)
             .creator_id(creator_id)
             .my_person_id(person_id)
-            .search_term(q)
+            .search_term(Some(q))
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
@@ -159,10 +156,11 @@ impl Perform for Search {
         let community_actor_id = community_actor_id.to_owned();
 
         comments = blocking(context.pool(), move |conn| {
-          CommentQueryBuilder::create(conn)
+          CommentQuery::builder()
+            .conn(conn)
             .sort(sort.map(post_to_comment_sort_type))
             .listing_type(listing_type)
-            .search_term(q)
+            .search_term(Some(q))
             .show_bot_accounts(show_bot_accounts)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
@@ -170,6 +168,7 @@ impl Perform for Search {
             .my_person_id(person_id)
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;
@@ -180,13 +179,15 @@ impl Perform for Search {
           vec![]
         } else {
           blocking(context.pool(), move |conn| {
-            CommunityQueryBuilder::create(conn)
+            CommunityQuery::builder()
+              .conn(conn)
               .sort(sort)
               .listing_type(listing_type)
-              .search_term(q)
+              .search_term(Some(q))
               .my_person_id(person_id)
               .page(page)
               .limit(limit)
+              .build()
               .list()
           })
           .await??
@@ -198,11 +199,13 @@ impl Perform for Search {
           vec![]
         } else {
           blocking(context.pool(), move |conn| {
-            PersonQueryBuilder::create(conn)
+            PersonQuery::builder()
+              .conn(conn)
               .sort(sort)
-              .search_term(q)
+              .search_term(Some(q))
               .page(page)
               .limit(limit)
+              .build()
               .list()
           })
           .await??
@@ -210,19 +213,17 @@ impl Perform for Search {
       }
       SearchType::Url => {
         posts = blocking(context.pool(), move |conn| {
-          PostQueryBuilder::create(conn)
+          PostQuery::builder()
+            .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
-            .my_person_id(person_id)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)
-            .url_search(q)
+            .url_search(Some(q))
             .page(page)
             .limit(limit)
+            .build()
             .list()
         })
         .await??;