summaryrefslogtreecommitdiffstats
path: root/server/src/api/post.rs
diff options
context:
space:
mode:
authorFelix <me@nutomic.com>2020-04-13 15:06:41 +0200
committerFelix <me@nutomic.com>2020-04-13 15:06:41 +0200
commitfdaf0b33642fec0e3e47b86cd7284b2fcea13ce9 (patch)
treed35aeb00bcae525aa860de9ec6b6aefadf5e7f28 /server/src/api/post.rs
parentfac1cc7e1dc3b78aa48ae8c945c8c1cbd9e7fc9e (diff)
Get inbox working properly
Diffstat (limited to 'server/src/api/post.rs')
-rw-r--r--server/src/api/post.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/server/src/api/post.rs b/server/src/api/post.rs
index e0053fe8..eb8909b2 100644
--- a/server/src/api/post.rs
+++ b/server/src/api/post.rs
@@ -1,9 +1,9 @@
use super::*;
-use crate::apub::activities::post_create;
+use crate::apub::activities::{post_create, post_update};
use diesel::PgConnection;
use std::str::FromStr;
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize, Deserialize, Debug)]
pub struct CreatePost {
name: String,
url: Option<String>,
@@ -150,12 +150,12 @@ impl Perform<PostResponse> for Oper<CreatePost> {
}
};
- match Post::update_ap_id(&conn, inserted_post.id) {
+ let updated_post = match Post::update_ap_id(&conn, inserted_post.id) {
Ok(post) => post,
Err(_e) => return Err(APIError::err("couldnt_create_post").into()),
};
- post_create(&inserted_post, &user, conn)?;
+ post_create(&updated_post, &user, conn)?;
// They like their own post by default
let like_form = PostLikeForm {
@@ -369,7 +369,8 @@ impl Perform<PostResponse> for Oper<EditPost> {
}
// 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());
}
@@ -400,7 +401,7 @@ impl Perform<PostResponse> for Oper<EditPost> {
published: None,
};
- let _updated_post = match Post::update(&conn, data.edit_id, &post_form) {
+ let updated_post = match Post::update(&conn, data.edit_id, &post_form) {
Ok(post) => post,
Err(e) => {
let err_type = if e.to_string() == "value too long for type character varying(200)" {
@@ -442,6 +443,8 @@ impl Perform<PostResponse> for Oper<EditPost> {
ModStickyPost::create(&conn, &form)?;
}
+ post_update(&updated_post, &user, conn)?;
+
let post_view = PostView::read(&conn, data.edit_id, Some(user_id))?;
Ok(PostResponse { post: post_view })