summaryrefslogtreecommitdiffstats
path: root/server/src/api
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-04-03 20:04:57 -0400
committerDessalines <tyhou13@gmx.com>2020-04-03 20:04:57 -0400
commit85ea1046f060694bec545c7897c5da9ecda412ef (patch)
tree9937c4b672fbc5e7013e5b5d729106d168aec00b /server/src/api
parentcb7059f832749836f865e2fcb90b089d949b8487 (diff)
Adding post and comment ap_id columns.
Diffstat (limited to 'server/src/api')
-rw-r--r--server/src/api/comment.rs11
-rw-r--r--server/src/api/post.rs11
-rw-r--r--server/src/api/user.rs108
3 files changed, 27 insertions, 103 deletions
diff --git a/server/src/api/comment.rs b/server/src/api/comment.rs
index 8373a338..1528f509 100644
--- a/server/src/api/comment.rs
+++ b/server/src/api/comment.rs
@@ -99,6 +99,8 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
deleted: None,
read: None,
updated: None,
+ ap_id: "changeme".into(),
+ local: true,
};
let inserted_comment = match Comment::create(&conn, &comment_form) {
@@ -106,6 +108,11 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
Err(_e) => return Err(APIError::err("couldnt_create_comment").into()),
};
+ match Comment::update_ap_id(&conn, inserted_comment.id) {
+ Ok(comment) => comment,
+ Err(_e) => return Err(APIError::err("couldnt_create_comment").into()),
+ };
+
let mut recipient_ids = Vec::new();
// Scan the comment for user mentions, add those rows
@@ -272,6 +279,8 @@ impl Perform<CommentResponse> for Oper<EditComment> {
let content_slurs_removed = remove_slurs(&data.content.to_owned());
+ let read_comment = Comment::read(&conn, data.edit_id)?;
+
let comment_form = CommentForm {
content: content_slurs_removed,
parent_id: data.parent_id,
@@ -285,6 +294,8 @@ impl Perform<CommentResponse> for Oper<EditComment> {
} else {
Some(naive_now())
},
+ ap_id: read_comment.ap_id,
+ local: read_comment.local,
};
let _updated_comment = match Comment::update(&conn, data.edit_id, &comment_form) {
diff --git a/server/src/api/post.rs b/server/src/api/post.rs
index 651d5769..cfb71941 100644
--- a/server/src/api/post.rs
+++ b/server/src/api/post.rs
@@ -131,6 +131,8 @@ impl Perform<PostResponse> for Oper<CreatePost> {
embed_description: iframely_description,
embed_html: iframely_html,
thumbnail_url: pictshare_thumbnail,
+ ap_id: "changeme".into(),
+ local: true,
};
let inserted_post = match Post::create(&conn, &post_form) {
@@ -146,6 +148,11 @@ impl Perform<PostResponse> for Oper<CreatePost> {
}
};
+ match Post::update_ap_id(&conn, inserted_post.id) {
+ Ok(post) => post,
+ Err(_e) => return Err(APIError::err("couldnt_create_post").into()),
+ };
+
// They like their own post by default
let like_form = PostLikeForm {
post_id: inserted_post.id,
@@ -371,6 +378,8 @@ impl Perform<PostResponse> for Oper<EditPost> {
let (iframely_title, iframely_description, iframely_html, pictshare_thumbnail) =
fetch_iframely_and_pictshare_data(data.url.to_owned());
+ let read_post = Post::read(&conn, data.edit_id)?;
+
let post_form = PostForm {
name: data.name.to_owned(),
url: data.url.to_owned(),
@@ -387,6 +396,8 @@ impl Perform<PostResponse> for Oper<EditPost> {
embed_description: iframely_description,
embed_html: iframely_html,
thumbnail_url: pictshare_thumbnail,
+ ap_id: read_post.ap_id,
+ local: read_post.local,
};
let _updated_post = match Post::update(&conn, data.edit_id, &post_form) {
diff --git a/server/src/api/user.rs b/server/src/api/user.rs
index 59a3d623..629ce8e5 100644
--- a/server/src/api/user.rs
+++ b/server/src/api/user.rs
@@ -563,36 +563,7 @@ impl Perform<AddAdminResponse> for Oper<AddAdmin> {
return Err(APIError::err("not_an_admin").into());
}
- let read_user = User_::read(&conn, data.user_id)?;
-
- // TODO make addadmin easier
- let user_form = UserForm {
- name: read_user.name,
- fedi_name: read_user.fedi_name,
- email: read_user.email,
- matrix_user_id: read_user.matrix_user_id,
- avatar: read_user.avatar,
- password_encrypted: read_user.password_encrypted,
- preferred_username: read_user.preferred_username,
- updated: Some(naive_now()),
- admin: data.added,
- banned: read_user.banned,
- show_nsfw: read_user.show_nsfw,
- theme: read_user.theme,
- default_sort_type: read_user.default_sort_type,
- default_listing_type: read_user.default_listing_type,
- lang: read_user.lang,
- show_avatars: read_user.show_avatars,
- send_notifications_to_email: read_user.send_notifications_to_email,
- actor_id: read_user.actor_id,
- bio: read_user.bio,
- local: read_user.local,
- private_key: read_user.private_key,
- public_key: read_user.public_key,
- last_refreshed_at: None,
- };
-
- match User_::update(&conn, data.user_id, &user_form) {
+ match User_::add_admin(&conn, user_id, data.added) {
Ok(user) => user,
Err(_e) => return Err(APIError::err("couldnt_update_user").into()),
};
@@ -632,36 +603,7 @@ impl Perform<BanUserResponse> for Oper<BanUser> {
return Err(APIError::err("not_an_admin").into());
}
- let read_user = User_::read(&conn, data.user_id)?;
-
- // TODO make bans and addadmins easier
- let user_form = UserForm {
- name: read_user.name,
- fedi_name: read_user.fedi_name,
- email: read_user.email,
- matrix_user_id: read_user.matrix_user_id,
- avatar: read_user.avatar,
- password_encrypted: read_user.password_encrypted,
- preferred_username: read_user.preferred_username,
- updated: Some(naive_now()),
- admin: read_user.admin,
- banned: data.ban,
- show_nsfw: read_user.show_nsfw,
- theme: read_user.theme,
- default_sort_type: read_user.default_sort_type,
- default_listing_type: read_user.default_listing_type,
- lang: read_user.lang,
- show_avatars: read_user.show_avatars,
- send_notifications_to_email: read_user.send_notifications_to_email,
- actor_id: read_user.actor_id,
- bio: read_user.bio,
- local: read_user.local,
- private_key: read_user.private_key,
- public_key: read_user.public_key,
- last_refreshed_at: None,
- };
-
- match User_::update(&conn, data.user_id, &user_form) {
+ match User_::ban_user(&conn, user_id, data.ban) {
Ok(user) => user,
Err(_e) => return Err(APIError::err("couldnt_update_user").into()),
};
@@ -790,18 +732,7 @@ impl Perform<GetRepliesResponse> for Oper<MarkAllAsRead> {
.list()?;
for reply in &replies {
- let comment_form = CommentForm {
- content: reply.to_owned().content,
- parent_id: reply.to_owned().parent_id,
- post_id: reply.to_owned().post_id,
- creator_id: reply.to_owned().creator_id,
- removed: None,
- deleted: None,
- read: Some(true),
- updated: reply.to_owned().updated,
- };
-
- let _updated_comment = match Comment::update(&conn, reply.id, &comment_form) {
+ match Comment::mark_as_read(&conn, reply.id) {
Ok(comment) => comment,
Err(_e) => return Err(APIError::err("couldnt_update_comment").into()),
};
@@ -882,18 +813,7 @@ impl Perform<LoginResponse> for Oper<DeleteAccount> {
.list()?;
for comment in &comments {
- let comment_form = CommentForm {
- content: "*Permananently Deleted*".to_string(),
- parent_id: comment.to_owned().parent_id,
- post_id: comment.to_owned().post_id,
- creator_id: comment.to_owned().creator_id,
- removed: None,
- deleted: Some(true),
- read: None,
- updated: Some(naive_now()),
- };
-
- let _updated_comment = match Comment::update(&conn, comment.id, &comment_form) {
+ let _updated_comment = match Comment::permadelete(&conn, comment.id) {
Ok(comment) => comment,
Err(_e) => return Err(APIError::err("couldnt_update_comment").into()),
};
@@ -907,25 +827,7 @@ impl Perform<LoginResponse> for Oper<DeleteAccount> {
.list()?;
for post in &posts {
- let post_form = PostForm {
- name: "*Permananently Deleted*".to_string(),
- url: Some("https://deleted.com".to_string()),
- body: Some("*Permananently Deleted*".to_string()),
- creator_id: post.to_owned().creator_id,
- community_id: post.to_owned().community_id,
- removed: None,
- deleted: Some(true),
- nsfw: post.to_owned().nsfw,
- locked: None,
- stickied: None,
- updated: Some(naive_now()),
- embed_title: None,
- embed_description: None,
- embed_html: None,
- thumbnail_url: None,
- };
-
- let _updated_post = match Post::update(&conn, post.id, &post_form) {
+ let _updated_post = match Post::permadelete(&conn, post.id) {
Ok(post) => post,
Err(_e) => return Err(APIError::err("couldnt_update_post").into()),
};