diff options
Diffstat (limited to 'server/src/api/site.rs')
-rw-r--r-- | server/src/api/site.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/server/src/api/site.rs b/server/src/api/site.rs index 1291891b..a5faf34d 100644 --- a/server/src/api/site.rs +++ b/server/src/api/site.rs @@ -18,6 +18,7 @@ pub struct Search { sort: String, page: Option<i64>, limit: Option<i64>, + auth: Option<String>, } #[derive(Serialize, Deserialize)] @@ -297,6 +298,17 @@ impl Perform<SearchResponse> for Oper<Search> { fn perform(&self, conn: &PgConnection) -> Result<SearchResponse, Error> { let data: &Search = &self.data; + let user_id: Option<i32> = match &data.auth { + Some(auth) => match Claims::decode(&auth) { + Ok(claims) => { + let user_id = claims.claims.id; + Some(user_id) + } + Err(_e) => None, + }, + None => None, + }; + let sort = SortType::from_str(&data.sort)?; let type_ = SearchType::from_str(&data.type_)?; @@ -314,6 +326,7 @@ impl Perform<SearchResponse> for Oper<Search> { .show_nsfw(true) .for_community_id(data.community_id) .search_term(data.q.to_owned()) + .my_user_id(user_id) .page(data.page) .limit(data.limit) .list()?; @@ -322,6 +335,7 @@ impl Perform<SearchResponse> for Oper<Search> { comments = CommentQueryBuilder::create(&conn) .sort(&sort) .search_term(data.q.to_owned()) + .my_user_id(user_id) .page(data.page) .limit(data.limit) .list()?; @@ -348,6 +362,7 @@ impl Perform<SearchResponse> for Oper<Search> { .show_nsfw(true) .for_community_id(data.community_id) .search_term(data.q.to_owned()) + .my_user_id(user_id) .page(data.page) .limit(data.limit) .list()?; @@ -355,6 +370,7 @@ impl Perform<SearchResponse> for Oper<Search> { comments = CommentQueryBuilder::create(&conn) .sort(&sort) .search_term(data.q.to_owned()) + .my_user_id(user_id) .page(data.page) .limit(data.limit) .list()?; |