summaryrefslogtreecommitdiffstats
path: root/server/src/api/post.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/api/post.rs')
-rw-r--r--server/src/api/post.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/server/src/api/post.rs b/server/src/api/post.rs
index 5be227d8..306365fa 100644
--- a/server/src/api/post.rs
+++ b/server/src/api/post.rs
@@ -169,12 +169,13 @@ impl Perform for Oper<CreatePost> {
score: 1,
};
- // Only add the like if the score isnt 0
let _inserted_like = match PostLike::like(&conn, &like_form) {
Ok(like) => like,
Err(_e) => return Err(APIError::err("couldnt_like_post").into()),
};
+ updated_post.send_like(&user, &conn)?;
+
// Refetch the view
let post_view = match PostView::read(&conn, inserted_post.id, Some(user_id)) {
Ok(post) => post,
@@ -368,7 +369,8 @@ impl Perform for Oper<CreatePostLike> {
}
// Check for a site ban
- if UserView::read(&conn, user_id)?.banned {
+ let user = User_::read(&conn, user_id)?;
+ if user.banned {
return Err(APIError::err("site_ban").into());
}
@@ -388,6 +390,14 @@ impl Perform for Oper<CreatePostLike> {
Ok(like) => like,
Err(_e) => return Err(APIError::err("couldnt_like_post").into()),
};
+
+ if like_form.score == 1 {
+ post.send_like(&user, &conn)?;
+ } else if like_form.score == -1 {
+ post.send_dislike(&user, &conn)?;
+ }
+ } else {
+ // TODO tombstone the post like
}
let post_view = match PostView::read(&conn, data.post_id, Some(user_id)) {