summaryrefslogtreecommitdiff
path: root/src/types/post.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/types/post.rs')
-rw-r--r--src/types/post.rs27
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)
}