diff options
author | Felix <me@nutomic.com> | 2020-04-13 15:06:41 +0200 |
---|---|---|
committer | Felix <me@nutomic.com> | 2020-04-13 15:06:41 +0200 |
commit | fdaf0b33642fec0e3e47b86cd7284b2fcea13ce9 (patch) | |
tree | d35aeb00bcae525aa860de9ec6b6aefadf5e7f28 /server/src/api/post.rs | |
parent | fac1cc7e1dc3b78aa48ae8c945c8c1cbd9e7fc9e (diff) |
Get inbox working properly
Diffstat (limited to 'server/src/api/post.rs')
-rw-r--r-- | server/src/api/post.rs | 15 |
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 }) |