diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-14 22:16:29 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-14 22:16:29 -0500 |
commit | 192be95f84058753d48ee9e872aac88db18e3816 (patch) | |
tree | 497b687670c21653b94dc558c5a522c358b28057 /src/types | |
parent | friends (diff) | |
download | xssbook-192be95f84058753d48ee9e872aac88db18e3816.tar.gz xssbook-192be95f84058753d48ee9e872aac88db18e3816.tar.bz2 xssbook-192be95f84058753d48ee9e872aac88db18e3816.zip |
bug fixes
Diffstat (limited to 'src/types')
-rw-r--r-- | src/types/post.rs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/types/post.rs b/src/types/post.rs index a067512..09f2f50 100644 --- a/src/types/post.rs +++ b/src/types/post.rs @@ -28,27 +28,42 @@ impl fmt::Debug for Post { impl Post { #[instrument()] - pub fn from_post_id(post_id: u64) -> Result<Self> { - let Ok(Some(post)) = database::posts::get_post(post_id) else { + pub fn from_post_id(self_id: u64, post_id: u64) -> Result<Self> { + let Ok(Some(mut post)) = database::posts::get_post(post_id) else { return Err(ResponseCode::BadRequest.text("Post does not exist")) }; + let liked = database::likes::get_liked(self_id, post.post_id).unwrap_or(false); + post.liked = liked; + Ok(post) } #[instrument()] - pub fn from_post_page(page: u64) -> Result<Vec<Self>> { - let Ok(posts) = database::posts::get_post_page(page) else { + pub fn from_post_page(self_id: u64, page: u64) -> Result<Vec<Self>> { + let Ok(mut posts) = database::posts::get_post_page(page) else { return Err(ResponseCode::BadRequest.text("Failed to fetch posts")) }; + + for post in &mut posts { + let liked = database::likes::get_liked(self_id, post.post_id).unwrap_or(false); + post.liked = liked; + } + Ok(posts) } #[instrument()] - pub fn from_user_post_page(user_id: u64, page: u64) -> Result<Vec<Self>> { - let Ok(posts) = database::posts::get_users_post_page(user_id, page) else { + pub fn from_user_post_page(self_id: u64, user_id: u64, page: u64) -> Result<Vec<Self>> { + let Ok(mut posts) = database::posts::get_users_post_page(user_id, page) else { return Err(ResponseCode::BadRequest.text("Failed to fetch posts")) }; + + for post in &mut posts { + let liked = database::likes::get_liked(self_id, post.post_id).unwrap_or(false); + post.liked = liked; + } + Ok(posts) } |