diff options
author | Dessalines <happydooby@gmail.com> | 2019-08-10 10:32:06 -0700 |
---|---|---|
committer | Dessalines <happydooby@gmail.com> | 2019-08-10 10:32:06 -0700 |
commit | 30f5f97f2fd9703c5a197bd08842de01fe7eb93b (patch) | |
tree | dc90721fbad5ce88781db9f091497f508950cc7e /server/src/api/site.rs | |
parent | 5ced2cdb4fa6f33f064631f9519025e329b61422 (diff) |
Adding support for community and user searching.
- Fixes #130
Diffstat (limited to 'server/src/api/site.rs')
-rw-r--r-- | server/src/api/site.rs | 122 |
1 files changed, 81 insertions, 41 deletions
diff --git a/server/src/api/site.rs b/server/src/api/site.rs index 08fefae4..09af742f 100644 --- a/server/src/api/site.rs +++ b/server/src/api/site.rs @@ -25,6 +25,8 @@ pub struct SearchResponse { op: String, comments: Vec<CommentView>, posts: Vec<PostView>, + communities: Vec<CommunityView>, + users: Vec<UserView>, } #[derive(Serialize, Deserialize)] @@ -272,53 +274,89 @@ impl Perform<SearchResponse> for Oper<Search> { let mut posts = Vec::new(); let mut comments = Vec::new(); + let mut communities = Vec::new(); + let mut users = Vec::new(); match type_ { SearchType::Posts => { - posts = PostView::list(&conn, - PostListingType::All, - &sort, - data.community_id, - None, - Some(data.q.to_owned()), - None, - false, - false, - data.page, - data.limit)?; + posts = PostView::list( + &conn, + PostListingType::All, + &sort, + data.community_id, + None, + Some(data.q.to_owned()), + None, + false, + false, + data.page, + data.limit)?; }, SearchType::Comments => { - comments = CommentView::list(&conn, - &sort, - None, - None, - Some(data.q.to_owned()), - None, - false, - data.page, - data.limit)?; + comments = CommentView::list( + &conn, + &sort, + None, + None, + Some(data.q.to_owned()), + None, + false, + data.page, + data.limit)?; + }, + SearchType::Communities => { + communities = CommunityView::list( + &conn, + &sort, + None, + Some(data.q.to_owned()), + data.page, + data.limit)?; + }, + SearchType::Users => { + users = UserView::list( + &conn, + &sort, + Some(data.q.to_owned()), + data.page, + data.limit)?; }, - SearchType::Both => { - posts = PostView::list(&conn, - PostListingType::All, - &sort, - data.community_id, - None, - Some(data.q.to_owned()), - None, - false, - false, - data.page, - data.limit)?; - comments = CommentView::list(&conn, - &sort, - None, - None, - Some(data.q.to_owned()), - None, - false, - data.page, - data.limit)?; + SearchType::All => { + posts = PostView::list( + &conn, + PostListingType::All, + &sort, + data.community_id, + None, + Some(data.q.to_owned()), + None, + false, + false, + data.page, + data.limit)?; + comments = CommentView::list( + &conn, + &sort, + None, + None, + Some(data.q.to_owned()), + None, + false, + data.page, + data.limit)?; + communities = CommunityView::list( + &conn, + &sort, + None, + Some(data.q.to_owned()), + data.page, + data.limit)?; + users = UserView::list( + &conn, + &sort, + Some(data.q.to_owned()), + data.page, + data.limit)?; } }; @@ -329,6 +367,8 @@ impl Perform<SearchResponse> for Oper<Search> { op: self.op.to_string(), comments: comments, posts: posts, + communities: communities, + users: users, } ) } |