]> Untitled Git - lemmy.git/commitdiff
Various things refactored (#95)
authornutomic <nutomic@noreply.yerbamate.dev>
Thu, 3 Sep 2020 19:45:12 +0000 (19:45 +0000)
committerdessalines <dessalines@noreply.yerbamate.dev>
Thu, 3 Sep 2020 19:45:12 +0000 (19:45 +0000)
Remove unused derive macros

lemmy_rate_limit doesnt depend on lemmy_api_structs anymore

Dont use "pub extern crate"

Co-authored-by: Felix Ableitner <me@nutomic.com>
Reviewed-on: https://yerbamate.dev/LemmyNet/lemmy/pulls/95

43 files changed:
server/Cargo.lock
server/lemmy_api_structs/Cargo.toml
server/lemmy_api_structs/src/comment.rs
server/lemmy_api_structs/src/community.rs
server/lemmy_api_structs/src/lib.rs
server/lemmy_api_structs/src/post.rs
server/lemmy_api_structs/src/site.rs
server/lemmy_api_structs/src/user.rs
server/lemmy_db/src/activity.rs
server/lemmy_db/src/category.rs
server/lemmy_db/src/comment.rs
server/lemmy_db/src/comment_view.rs
server/lemmy_db/src/community.rs
server/lemmy_db/src/community_view.rs
server/lemmy_db/src/lib.rs
server/lemmy_db/src/moderator.rs
server/lemmy_db/src/moderator_views.rs
server/lemmy_db/src/password_reset_request.rs
server/lemmy_db/src/post.rs
server/lemmy_db/src/post_view.rs
server/lemmy_db/src/private_message.rs
server/lemmy_db/src/private_message_view.rs
server/lemmy_db/src/site.rs
server/lemmy_db/src/site_view.rs
server/lemmy_db/src/user.rs
server/lemmy_db/src/user_mention.rs
server/lemmy_db/src/user_mention_view.rs
server/lemmy_db/src/user_view.rs
server/lemmy_rate_limit/Cargo.toml
server/lemmy_rate_limit/src/lib.rs
server/lemmy_rate_limit/src/rate_limiter.rs
server/lemmy_utils/Cargo.toml
server/lemmy_utils/src/lib.rs
server/src/api/comment.rs
server/src/api/community.rs
server/src/api/mod.rs
server/src/api/post.rs
server/src/api/site.rs
server/src/api/user.rs
server/src/lib.rs
server/src/main.rs
server/src/routes/api.rs
server/src/websocket/chat_server.rs

index 305af342b75edc2e3c172d8746c0ebd23569130f..023a3f9dd1fcdcc9d37ada822b73fea64351c2ca 100644 (file)
@@ -1800,7 +1800,6 @@ version = "0.1.0"
 dependencies = [
  "lemmy_db",
  "serde 1.0.114",
- "thiserror",
 ]
 
 [[package]]
@@ -1827,7 +1826,6 @@ version = "0.1.0"
 dependencies = [
  "actix-web",
  "futures",
- "lemmy_api_structs",
  "lemmy_utils",
  "log",
  "strum",
@@ -1904,6 +1902,7 @@ dependencies = [
  "regex",
  "serde 1.0.114",
  "serde_json",
+ "thiserror",
  "url",
 ]
 
index 93653fba2ebc39c4985fb0067b704eabb9e1f432..3778422bec742403f5abbbd46a0c0f4d92f78087 100644 (file)
@@ -11,4 +11,3 @@ path = "src/lib.rs"
 [dependencies]
 lemmy_db = { path = "../lemmy_db" }
 serde = { version = "1.0.105", features = ["derive"] }
-thiserror = "1.0.20"
index 8dbefff6a3669787c1a6b1696ebd8c1cab025662..906c3996589dfe63dc737a7278014e15cd4c7c30 100644 (file)
@@ -1,7 +1,7 @@
 use lemmy_db::comment_view::CommentView;
 use serde::{Deserialize, Serialize};
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreateComment {
   pub content: String,
   pub parent_id: Option<i32>,
@@ -10,7 +10,7 @@ pub struct CreateComment {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct EditComment {
   pub content: String,
   pub edit_id: i32,
@@ -18,14 +18,14 @@ pub struct EditComment {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct DeleteComment {
   pub edit_id: i32,
   pub deleted: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct RemoveComment {
   pub edit_id: i32,
   pub removed: bool,
@@ -33,35 +33,35 @@ pub struct RemoveComment {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct MarkCommentAsRead {
   pub edit_id: i32,
   pub read: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct SaveComment {
   pub comment_id: i32,
   pub save: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct CommentResponse {
   pub comment: CommentView,
   pub recipient_ids: Vec<i32>,
   pub form_id: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreateCommentLike {
   pub comment_id: i32,
   pub score: i16,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetComments {
   pub type_: String,
   pub sort: String,
@@ -71,7 +71,7 @@ pub struct GetComments {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetCommentsResponse {
   pub comments: Vec<CommentView>,
 }
index 8d07360e6f982b83f41a8c81047a6402f426845c..52c2ec5578d0b7a7b5e238e75c9275f4fda08d77 100644 (file)
@@ -4,21 +4,21 @@ use lemmy_db::{
 };
 use serde::{Deserialize, Serialize};
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetCommunity {
   pub id: Option<i32>,
   pub name: Option<String>,
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetCommunityResponse {
   pub community: CommunityView,
   pub moderators: Vec<CommunityModeratorView>,
   pub online: usize,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreateCommunity {
   pub name: String,
   pub title: String,
@@ -30,12 +30,12 @@ pub struct CreateCommunity {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct CommunityResponse {
   pub community: CommunityView,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct ListCommunities {
   pub sort: String,
   pub page: Option<i64>,
@@ -43,12 +43,12 @@ pub struct ListCommunities {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Serialize, Debug)]
 pub struct ListCommunitiesResponse {
   pub communities: Vec<CommunityView>,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Deserialize, Clone)]
 pub struct BanFromCommunity {
   pub community_id: i32,
   pub user_id: i32,
@@ -59,13 +59,13 @@ pub struct BanFromCommunity {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct BanFromCommunityResponse {
   pub user: UserView,
   pub banned: bool,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct AddModToCommunity {
   pub community_id: i32,
   pub user_id: i32,
@@ -73,12 +73,12 @@ pub struct AddModToCommunity {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct AddModToCommunityResponse {
   pub moderators: Vec<CommunityModeratorView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct EditCommunity {
   pub edit_id: i32,
   pub title: String,
@@ -90,14 +90,14 @@ pub struct EditCommunity {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct DeleteCommunity {
   pub edit_id: i32,
   pub deleted: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct RemoveCommunity {
   pub edit_id: i32,
   pub removed: bool,
@@ -106,24 +106,24 @@ pub struct RemoveCommunity {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct FollowCommunity {
   pub community_id: i32,
   pub follow: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetFollowedCommunities {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetFollowedCommunitiesResponse {
   pub communities: Vec<CommunityFollowerView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct TransferCommunity {
   pub community_id: i32,
   pub user_id: i32,
index df5830409841574d8e4d77fa0fbdccb27e9b86b2..b3576a0d629421cb4deb1097babe73b11eb054bf 100644 (file)
@@ -1,24 +1,7 @@
-pub extern crate serde;
-pub extern crate thiserror;
+extern crate serde;
 
 pub mod comment;
 pub mod community;
 pub mod post;
 pub mod site;
 pub mod user;
-
-use thiserror::Error;
-
-#[derive(Debug, Error)]
-#[error("{{\"error\":\"{message}\"}}")]
-pub struct APIError {
-  pub message: String,
-}
-
-impl APIError {
-  pub fn err(msg: &str) -> Self {
-    APIError {
-      message: msg.to_string(),
-    }
-  }
-}
index 5860b2b27a900e02ea5c9b670ba3e49d43b5d4ce..d1adf1bd10fc4f376eb05374e7708032b388f18b 100644 (file)
@@ -5,7 +5,7 @@ use lemmy_db::{
 };
 use serde::{Deserialize, Serialize};
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct CreatePost {
   pub name: String,
   pub url: Option<String>,
@@ -15,18 +15,18 @@ pub struct CreatePost {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct PostResponse {
   pub post: PostView,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetPost {
   pub id: i32,
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetPostResponse {
   pub post: PostView,
   pub comments: Vec<CommentView>,
@@ -35,7 +35,7 @@ pub struct GetPostResponse {
   pub online: usize,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct GetPosts {
   pub type_: String,
   pub sort: String,
@@ -46,19 +46,19 @@ pub struct GetPosts {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Serialize, Debug)]
 pub struct GetPostsResponse {
   pub posts: Vec<PostView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreatePostLike {
   pub post_id: i32,
   pub score: i16,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct EditPost {
   pub edit_id: i32,
   pub name: String,
@@ -68,14 +68,14 @@ pub struct EditPost {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct DeletePost {
   pub edit_id: i32,
   pub deleted: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct RemovePost {
   pub edit_id: i32,
   pub removed: bool,
@@ -83,21 +83,21 @@ pub struct RemovePost {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct LockPost {
   pub edit_id: i32,
   pub locked: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct StickyPost {
   pub edit_id: i32,
   pub stickied: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct SavePost {
   pub post_id: i32,
   pub save: bool,
index 7766a5f9ee22197b8a1a3f8ef476f3bbb7291d5d..b82b325e30cbadfc6ea8b72b534b4321651abe26 100644 (file)
@@ -10,15 +10,15 @@ use lemmy_db::{
 };
 use serde::{Deserialize, Serialize};
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct ListCategories {}
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct ListCategoriesResponse {
   pub categories: Vec<Category>,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct Search {
   pub q: String,
   pub type_: String,
@@ -29,7 +29,7 @@ pub struct Search {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Serialize, Debug)]
 pub struct SearchResponse {
   pub type_: String,
   pub comments: Vec<CommentView>,
@@ -38,7 +38,7 @@ pub struct SearchResponse {
   pub users: Vec<UserView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetModlog {
   pub mod_user_id: Option<i32>,
   pub community_id: Option<i32>,
@@ -46,7 +46,7 @@ pub struct GetModlog {
   pub limit: Option<i64>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetModlogResponse {
   pub removed_posts: Vec<ModRemovePostView>,
   pub locked_posts: Vec<ModLockPostView>,
@@ -59,7 +59,7 @@ pub struct GetModlogResponse {
   pub added: Vec<ModAddView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreateSite {
   pub name: String,
   pub description: Option<String>,
@@ -71,7 +71,7 @@ pub struct CreateSite {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct EditSite {
   pub name: String,
   pub description: Option<String>,
@@ -83,17 +83,17 @@ pub struct EditSite {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetSite {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct SiteResponse {
   pub site: SiteView,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetSiteResponse {
   pub site: Option<SiteView>,
   pub admins: Vec<UserView>,
@@ -104,23 +104,23 @@ pub struct GetSiteResponse {
   pub federated_instances: Vec<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct TransferSite {
   pub user_id: i32,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetSiteConfig {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetSiteConfigResponse {
   pub config_hjson: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct SaveSiteConfig {
   pub config_hjson: String,
   pub auth: String,
index 5954e2b9bfcb17a26afa574569fd1a49437c6011..43eadb115fb60b43e41feb7bdbe896331c75856c 100644 (file)
@@ -8,13 +8,13 @@ use lemmy_db::{
 };
 use serde::{Deserialize, Serialize};
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct Login {
   pub username_or_email: String,
   pub password: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct Register {
   pub username: String,
   pub email: Option<String>,
@@ -26,22 +26,22 @@ pub struct Register {
   pub captcha_answer: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetCaptcha {}
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetCaptchaResponse {
   pub ok: Option<CaptchaResponse>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct CaptchaResponse {
   pub png: String,         // A Base64 encoded png
   pub wav: Option<String>, // A Base64 encoded wav audio
   pub uuid: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct SaveUserSettings {
   pub show_nsfw: bool,
   pub theme: String,
@@ -62,12 +62,12 @@ pub struct SaveUserSettings {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct LoginResponse {
   pub jwt: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetUserDetails {
   pub user_id: Option<i32>,
   pub username: Option<String>,
@@ -79,7 +79,7 @@ pub struct GetUserDetails {
   pub auth: Option<String>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetUserDetailsResponse {
   pub user: UserView,
   pub follows: Vec<CommunityFollowerView>,
@@ -88,34 +88,34 @@ pub struct GetUserDetailsResponse {
   pub posts: Vec<PostView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetRepliesResponse {
   pub replies: Vec<ReplyView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Serialize)]
 pub struct GetUserMentionsResponse {
   pub mentions: Vec<UserMentionView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct MarkAllAsRead {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct AddAdmin {
   pub user_id: i32,
   pub added: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct AddAdminResponse {
   pub admins: Vec<UserView>,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct BanUser {
   pub user_id: i32,
   pub ban: bool,
@@ -125,13 +125,13 @@ pub struct BanUser {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct BanUserResponse {
   pub user: UserView,
   pub banned: bool,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetReplies {
   pub sort: String,
   pub page: Option<i64>,
@@ -140,7 +140,7 @@ pub struct GetReplies {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetUserMentions {
   pub sort: String,
   pub page: Option<i64>,
@@ -149,68 +149,68 @@ pub struct GetUserMentions {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct MarkUserMentionAsRead {
   pub user_mention_id: i32,
   pub read: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct UserMentionResponse {
   pub mention: UserMentionView,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct DeleteAccount {
   pub password: String,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct PasswordReset {
   pub email: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct PasswordResetResponse {}
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct PasswordChange {
   pub token: String,
   pub password: String,
   pub password_verify: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct CreatePrivateMessage {
   pub content: String,
   pub recipient_id: i32,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct EditPrivateMessage {
   pub edit_id: i32,
   pub content: String,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct DeletePrivateMessage {
   pub edit_id: i32,
   pub deleted: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct MarkPrivateMessageAsRead {
   pub edit_id: i32,
   pub read: bool,
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize)]
+#[derive(Deserialize)]
 pub struct GetPrivateMessages {
   pub unread_only: bool,
   pub page: Option<i64>,
@@ -218,22 +218,22 @@ pub struct GetPrivateMessages {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct PrivateMessagesResponse {
   pub messages: Vec<PrivateMessageView>,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct PrivateMessageResponse {
   pub message: PrivateMessageView,
 }
 
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
 pub struct UserJoin {
   pub auth: String,
 }
 
-#[derive(Serialize, Deserialize, Clone)]
+#[derive(Serialize, Clone)]
 pub struct UserJoinResponse {
   pub user_id: i32,
 }
index c28eda45c06d58249e3de994b8475885c74e0632..6a5beb3bb7c9a4f767260f65895c68b2c28f44af 100644 (file)
@@ -1,14 +1,14 @@
 use crate::{schema::activity, Crud};
 use diesel::{dsl::*, result::Error, *};
 use log::debug;
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 use serde_json::Value;
 use std::{
   fmt::Debug,
   io::{Error as IoError, ErrorKind},
 };
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "activity"]
 pub struct Activity {
   pub id: i32,
@@ -19,7 +19,7 @@ pub struct Activity {
   pub updated: Option<chrono::NaiveDateTime>,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "activity"]
 pub struct ActivityForm {
   pub user_id: i32,
index ff4e757bf77531e04c7706b9e40ac9283f6447f3..c4165c22f1c3fb36a540805fbd860791416a0065 100644 (file)
@@ -3,16 +3,16 @@ use crate::{
   Crud,
 };
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize)]
 #[table_name = "category"]
 pub struct Category {
   pub id: i32,
   pub name: String,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "category"]
 pub struct CategoryForm {
   pub name: String,
index 76fa5ea03e20975d7425aeac697271eb41f425e7..bc2a574ec821a1dc68b97c4bf84de4a0283b7b66 100644 (file)
@@ -7,7 +7,6 @@ use crate::{
   Saveable,
 };
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 use url::{ParseError, Url};
 
 // WITH RECURSIVE MyTree AS (
@@ -17,7 +16,7 @@ use url::{ParseError, Url};
 // )
 // SELECT * FROM MyTree;
 
-#[derive(Clone, Queryable, Associations, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Clone, Queryable, Associations, Identifiable, PartialEq, Debug)]
 #[belongs_to(Post)]
 #[table_name = "comment"]
 pub struct Comment {
@@ -230,7 +229,7 @@ pub struct CommentSaved {
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "comment_saved"]
 pub struct CommentSavedForm {
   pub comment_id: i32,
index a1751ca679a4b43cb892d102be4e544a120463d9..d7e5c08d0b8c723246246b07e6c43e6884355a99 100644 (file)
@@ -85,7 +85,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "comment_fast_view"]
 pub struct CommentView {
index d033412c781cd14520a22b1075bc140470d6796c..918d44f1519aa94e1bbbc6f19bb6c2136bf4a4e6 100644 (file)
@@ -7,9 +7,8 @@ use crate::{
   Joinable,
 };
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 
-#[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Clone, Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "community"]
 pub struct Community {
   pub id: i32,
@@ -32,7 +31,7 @@ pub struct Community {
   pub banner: Option<String>,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize, Debug)]
+#[derive(Insertable, AsChangeset, Debug)]
 #[table_name = "community"]
 pub struct CommunityForm {
   pub name: String,
index e8353779c964e3cd8200d5ea7abde2a85139d82c..1ecca0a1f9b830e7dc815ac7a795a86c082527f0 100644 (file)
@@ -124,7 +124,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "community_fast_view"]
 pub struct CommunityView {
index 4a4748ce562d2a21154bfc6c39f52a8109d35ea2..ed6e1dfb9f70a191845302bfc892f234986ff107 100644 (file)
@@ -1,17 +1,17 @@
 #[macro_use]
-pub extern crate diesel;
+extern crate diesel;
 #[macro_use]
-pub extern crate strum_macros;
+extern crate strum_macros;
 #[macro_use]
-pub extern crate lazy_static;
-pub extern crate bcrypt;
-pub extern crate chrono;
-pub extern crate log;
-pub extern crate regex;
-pub extern crate serde;
-pub extern crate serde_json;
-pub extern crate sha2;
-pub extern crate strum;
+extern crate lazy_static;
+extern crate bcrypt;
+extern crate chrono;
+extern crate log;
+extern crate regex;
+extern crate serde;
+extern crate serde_json;
+extern crate sha2;
+extern crate strum;
 
 use chrono::NaiveDateTime;
 use diesel::{result::Error, *};
index 7d453d353ff6736cc8aebfc1ce50dbce9690b100..aaed1314d7d33083820c8f81afb156dc2b2ebb67 100644 (file)
@@ -13,9 +13,8 @@ use crate::{
   Crud,
 };
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_remove_post"]
 pub struct ModRemovePost {
   pub id: i32,
@@ -26,7 +25,7 @@ pub struct ModRemovePost {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_remove_post"]
 pub struct ModRemovePostForm {
   pub mod_user_id: i32,
@@ -56,7 +55,7 @@ impl Crud<ModRemovePostForm> for ModRemovePost {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_lock_post"]
 pub struct ModLockPost {
   pub id: i32,
@@ -66,7 +65,7 @@ pub struct ModLockPost {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_lock_post"]
 pub struct ModLockPostForm {
   pub mod_user_id: i32,
@@ -95,7 +94,7 @@ impl Crud<ModLockPostForm> for ModLockPost {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_sticky_post"]
 pub struct ModStickyPost {
   pub id: i32,
@@ -105,7 +104,7 @@ pub struct ModStickyPost {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_sticky_post"]
 pub struct ModStickyPostForm {
   pub mod_user_id: i32,
@@ -134,7 +133,7 @@ impl Crud<ModStickyPostForm> for ModStickyPost {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_remove_comment"]
 pub struct ModRemoveComment {
   pub id: i32,
@@ -145,7 +144,7 @@ pub struct ModRemoveComment {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_remove_comment"]
 pub struct ModRemoveCommentForm {
   pub mod_user_id: i32,
@@ -175,7 +174,7 @@ impl Crud<ModRemoveCommentForm> for ModRemoveComment {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_remove_community"]
 pub struct ModRemoveCommunity {
   pub id: i32,
@@ -187,7 +186,7 @@ pub struct ModRemoveCommunity {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_remove_community"]
 pub struct ModRemoveCommunityForm {
   pub mod_user_id: i32,
@@ -222,7 +221,7 @@ impl Crud<ModRemoveCommunityForm> for ModRemoveCommunity {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_ban_from_community"]
 pub struct ModBanFromCommunity {
   pub id: i32,
@@ -235,7 +234,7 @@ pub struct ModBanFromCommunity {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_ban_from_community"]
 pub struct ModBanFromCommunityForm {
   pub mod_user_id: i32,
@@ -271,7 +270,7 @@ impl Crud<ModBanFromCommunityForm> for ModBanFromCommunity {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_ban"]
 pub struct ModBan {
   pub id: i32,
@@ -283,7 +282,7 @@ pub struct ModBan {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_ban"]
 pub struct ModBanForm {
   pub mod_user_id: i32,
@@ -312,7 +311,7 @@ impl Crud<ModBanForm> for ModBan {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_add_community"]
 pub struct ModAddCommunity {
   pub id: i32,
@@ -323,7 +322,7 @@ pub struct ModAddCommunity {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_add_community"]
 pub struct ModAddCommunityForm {
   pub mod_user_id: i32,
@@ -353,7 +352,7 @@ impl Crud<ModAddCommunityForm> for ModAddCommunity {
   }
 }
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "mod_add"]
 pub struct ModAdd {
   pub id: i32,
@@ -363,7 +362,7 @@ pub struct ModAdd {
   pub when_: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "mod_add"]
 pub struct ModAddForm {
   pub mod_user_id: i32,
index 024907c39dbe3f7cdfd81ea079c035dd03b35611..7054a05a05b04dd15ad977063b8e0dadd9a8e2cb 100644 (file)
@@ -1,6 +1,6 @@
 use crate::limit_and_offset;
 use diesel::{result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 table! {
   mod_remove_post_view (id) {
@@ -18,7 +18,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_remove_post_view"]
 pub struct ModRemovePostView {
@@ -78,7 +78,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_lock_post_view"]
 pub struct ModLockPostView {
@@ -137,7 +137,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_sticky_post_view"]
 pub struct ModStickyPostView {
@@ -201,7 +201,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_remove_comment_view"]
 pub struct ModRemoveCommentView {
@@ -265,7 +265,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_remove_community_view"]
 pub struct ModRemoveCommunityView {
@@ -321,7 +321,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_ban_from_community_view"]
 pub struct ModBanFromCommunityView {
@@ -382,7 +382,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_ban_view"]
 pub struct ModBanView {
@@ -436,7 +436,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_add_community_view"]
 pub struct ModAddCommunityView {
@@ -493,7 +493,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "mod_add_view"]
 pub struct ModAddView {
index 0b0587439fd7da22499a5d7f9651e71a581669c1..fde47c98e99361ae9314d01bd3d9ce2f2a6f2de2 100644 (file)
@@ -14,7 +14,7 @@ pub struct PasswordResetRequest {
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "password_reset_request"]
 pub struct PasswordResetRequestForm {
   pub user_id: i32,
index 177659eb996088266c7df3614ed4dceaf59391c8..7d13eb806801d28a3bd54ba2cef3c810bc562c0e 100644 (file)
@@ -7,10 +7,9 @@ use crate::{
   Saveable,
 };
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 use url::{ParseError, Url};
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "post"]
 pub struct Post {
   pub id: i32,
@@ -34,7 +33,7 @@ pub struct Post {
   pub local: bool,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Debug)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "post"]
 pub struct PostForm {
   pub name: String,
@@ -261,7 +260,7 @@ pub struct PostSaved {
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "post_saved"]
 pub struct PostSavedForm {
   pub post_id: i32,
@@ -299,7 +298,7 @@ pub struct PostRead {
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "post_read"]
 pub struct PostReadForm {
   pub post_id: i32,
index eb2429c6fe7c82362b0a3fd5664e5b85f2057ce9..3d3afb7094efa8327bd1fd0063f4cdabe7dde70e 100644 (file)
@@ -1,7 +1,7 @@
 use super::post_view::post_fast_view::BoxedQuery;
 use crate::{fuzzy_search, limit_and_offset, ListingType, MaybeOptional, SortType};
 use diesel::{dsl::*, pg::Pg, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 // The faked schema since diesel doesn't do views
 table! {
@@ -107,7 +107,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "post_fast_view"]
 pub struct PostView {
index be54b9b2e156b8c4e71f207abd0e6553939e1d43..2484ebeabd13b9f0c6b6f5c7db63a77cc10d6991 100644 (file)
@@ -1,8 +1,7 @@
 use crate::{naive_now, schema::private_message, Crud};
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "private_message"]
 pub struct PrivateMessage {
   pub id: i32,
@@ -17,7 +16,7 @@ pub struct PrivateMessage {
   pub local: bool,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "private_message"]
 pub struct PrivateMessageForm {
   pub creator_id: i32,
index c9b4249b6e3bfa9271ac70c5b37745619f9a70e6..39fe66efa9028d82b6c99d21524542547294e267 100644 (file)
@@ -1,6 +1,6 @@
 use crate::{limit_and_offset, MaybeOptional};
 use diesel::{pg::Pg, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 // The faked schema since diesel doesn't do views
 table! {
@@ -29,7 +29,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "private_message_view"]
 pub struct PrivateMessageView {
index 36b3e833d988cc672e2cc00432850db4e88b1485..5e68fead8afbb1078c791678e747fe8fa2d31095 100644 (file)
@@ -1,8 +1,7 @@
 use crate::{naive_now, schema::site, Crud};
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 
-#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Identifiable, PartialEq, Debug)]
 #[table_name = "site"]
 pub struct Site {
   pub id: i32,
@@ -18,7 +17,7 @@ pub struct Site {
   pub banner: Option<String>,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "site"]
 pub struct SiteForm {
   pub name: String,
index 75cb29cb7e8414190d5598df5e3521cc9ee9aab1..0edfd2b7090591dc662713cc85206cbe32def00e 100644 (file)
@@ -1,5 +1,5 @@
 use diesel::{result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 table! {
   site_view (id) {
@@ -25,7 +25,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "site_view"]
 pub struct SiteView {
index 0a39bdb27595d5c030ddb4df9f5283a16828b369..247b5b360583aeb10e2ef5778a9661462de26abc 100644 (file)
@@ -6,9 +6,9 @@ use crate::{
 };
 use bcrypt::{hash, DEFAULT_COST};
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
-#[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)]
 #[table_name = "user_"]
 pub struct User_ {
   pub id: i32,
@@ -38,7 +38,7 @@ pub struct User_ {
   pub banner: Option<String>,
 }
 
-#[derive(Insertable, AsChangeset, Clone, Debug)]
+#[derive(Insertable, AsChangeset, Clone)]
 #[table_name = "user_"]
 pub struct UserForm {
   pub name: String,
index a5985223e30518f1bc7a7f4cc32ccc7199f84057..bcb3a1437bd06f51c26c5875e716143d925c69d7 100644 (file)
@@ -1,9 +1,8 @@
 use super::comment::Comment;
 use crate::{schema::user_mention, Crud};
 use diesel::{dsl::*, result::Error, *};
-use serde::{Deserialize, Serialize};
 
-#[derive(Queryable, Associations, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
+#[derive(Queryable, Associations, Identifiable, PartialEq, Debug)]
 #[belongs_to(Comment)]
 #[table_name = "user_mention"]
 pub struct UserMention {
@@ -14,7 +13,7 @@ pub struct UserMention {
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset, Clone)]
+#[derive(Insertable, AsChangeset)]
 #[table_name = "user_mention"]
 pub struct UserMentionForm {
   pub recipient_id: i32,
index f74adc31b74cf43041dcb4c0e035e30754a4413e..c35ad3613b64ae5b123a185a63c69f557894ffc0 100644 (file)
@@ -1,6 +1,6 @@
 use crate::{limit_and_offset, MaybeOptional, SortType};
 use diesel::{dsl::*, pg::Pg, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 // The faked schema since diesel doesn't do views
 table! {
@@ -84,7 +84,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "user_mention_fast_view"]
 pub struct UserMentionView {
index 09a17aee310c8fa782deae06920dd667d2151225..a4f6f47aef2d03726ca9201d8d6490b60e4dd42b 100644 (file)
@@ -1,7 +1,7 @@
 use super::user_view::user_fast::BoxedQuery;
 use crate::{fuzzy_search, limit_and_offset, MaybeOptional, SortType};
 use diesel::{dsl::*, pg::Pg, result::Error, *};
-use serde::{Deserialize, Serialize};
+use serde::{Serialize};
 
 table! {
   user_view (id) {
@@ -52,7 +52,7 @@ table! {
 }
 
 #[derive(
-  Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize, QueryableByName, Clone,
+  Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
 )]
 #[table_name = "user_fast"]
 pub struct UserView {
index 001297fcc1c8908030bf562e03be41b91c7b4402..949f72f99d3a5d787f24b463b5e6f8f5395b2aec 100644 (file)
@@ -10,7 +10,6 @@ path = "src/lib.rs"
 
 [dependencies]
 lemmy_utils = { path = "../lemmy_utils" }
-lemmy_api_structs = { path = "../lemmy_api_structs" }
 tokio = "0.2.21"
 strum = "0.18.0"
 strum_macros = "0.18.0"
index 2d3553f01d48620346f5c141e64b2eabb4f58fdf..260f7e2cb117b3be9f24f8f304d71a411e297025 100644 (file)
@@ -1,9 +1,9 @@
 #[macro_use]
-pub extern crate strum_macros;
-pub extern crate actix_web;
-pub extern crate futures;
-pub extern crate log;
-pub extern crate tokio;
+extern crate strum_macros;
+extern crate actix_web;
+extern crate futures;
+extern crate log;
+extern crate tokio;
 
 use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform};
 use futures::future::{ok, Ready};
index b485472900b5b24df6039c62f2f4b364dee15edc..1c355acf3a3022d669f1362d4fe122d8a698b1b0 100644 (file)
@@ -1,5 +1,4 @@
-use lemmy_api_structs::APIError;
-use lemmy_utils::{IPAddr, LemmyError};
+use lemmy_utils::{APIError, IPAddr, LemmyError};
 use log::debug;
 use std::{collections::HashMap, time::SystemTime};
 use strum::IntoEnumIterator;
index d0806e29387d54daa9e6fc30664f4e1e14480068..a852cb852d1880b03085e844bf892deca3a94ec0 100644 (file)
@@ -20,6 +20,7 @@ itertools = "0.9.0"
 rand = "0.7.3"
 serde = { version = "1.0.105", features = ["derive"] }
 serde_json = { version = "1.0.52", features = ["preserve_order"]}
+thiserror = "1.0.20"
 comrak = "0.7"
 lazy_static = "1.3.0"
 openssl = "0.10"
index 2050934335e30f90c5e48649b02d33f8a4f193d2..d282182829b7b1bbb7f75b29c50e59a32f0ff231 100644 (file)
@@ -1,15 +1,16 @@
 #[macro_use]
-pub extern crate lazy_static;
-pub extern crate actix_web;
-pub extern crate anyhow;
-pub extern crate comrak;
-pub extern crate lettre;
-pub extern crate lettre_email;
-pub extern crate openssl;
-pub extern crate rand;
-pub extern crate regex;
-pub extern crate serde_json;
-pub extern crate url;
+extern crate lazy_static;
+extern crate actix_web;
+extern crate anyhow;
+extern crate comrak;
+extern crate lettre;
+extern crate lettre_email;
+extern crate openssl;
+extern crate rand;
+extern crate regex;
+extern crate serde_json;
+extern crate thiserror;
+extern crate url;
 
 pub mod settings;
 
@@ -32,6 +33,7 @@ use openssl::{pkey::PKey, rsa::Rsa};
 use rand::{distributions::Alphanumeric, thread_rng, Rng};
 use regex::{Regex, RegexBuilder};
 use std::io::{Error, ErrorKind};
+use thiserror::Error;
 use url::Url;
 
 pub type ConnectionId = usize;
@@ -52,6 +54,20 @@ macro_rules! location_info {
   };
 }
 
+#[derive(Debug, Error)]
+#[error("{{\"error\":\"{message}\"}}")]
+pub struct APIError {
+  pub message: String,
+}
+
+impl APIError {
+  pub fn err(msg: &str) -> Self {
+    APIError {
+      message: msg.to_string(),
+    }
+  }
+}
+
 #[derive(Debug)]
 pub struct LemmyError {
   inner: anyhow::Error,
index 9ad52108b2e99ab7a8b04c03677368e18084ee0d..f0e56810e0a5cbb4f195a58073cbcc3f725ace38 100644 (file)
@@ -17,7 +17,7 @@ use crate::{
   LemmyContext,
 };
 use actix_web::web::Data;
-use lemmy_api_structs::{comment::*, APIError};
+use lemmy_api_structs::comment::*;
 use lemmy_db::{
   comment::*,
   comment_view::*,
@@ -38,6 +38,7 @@ use lemmy_utils::{
   scrape_text_for_mentions,
   send_email,
   settings::Settings,
+  APIError,
   ConnectionId,
   EndpointType,
   LemmyError,
index 17eb1c5c8ab8a6b66e8ec4fde3a951b337b1d6e4..6fb67b330c81a9c3f5f8af62a5e553901ee2257c 100644 (file)
@@ -18,7 +18,7 @@ use crate::{
 };
 use actix_web::web::Data;
 use anyhow::Context;
-use lemmy_api_structs::{community::*, APIError};
+use lemmy_api_structs::community::*;
 use lemmy_db::{
   comment::Comment,
   comment_view::CommentQueryBuilder,
@@ -42,6 +42,7 @@ use lemmy_utils::{
   location_info,
   make_apub_endpoint,
   naive_from_unix,
+  APIError,
   ConnectionId,
   EndpointType,
   LemmyError,
index 03a585f7fda7a0e2962745ec135f7838062b2436..a1b8c188d606c1ec8afcf3a8f5c6001c65abd88a 100644 (file)
@@ -1,6 +1,5 @@
 use crate::{api::claims::Claims, blocking, DbPool, LemmyContext};
 use actix_web::web::Data;
-use lemmy_api_structs::APIError;
 use lemmy_db::{
   community::Community,
   community_view::CommunityUserBanView,
@@ -8,7 +7,7 @@ use lemmy_db::{
   user::User_,
   Crud,
 };
-use lemmy_utils::{slur_check, slurs_vec_to_str, ConnectionId, LemmyError};
+use lemmy_utils::{slur_check, slurs_vec_to_str, APIError, ConnectionId, LemmyError};
 
 pub mod claims;
 pub mod comment;
index 0eeaae43ed3d53bce5cc4634d618caf1236d4663..9e1e97d511f45d5e1ed76240b89143482a23415c 100644 (file)
@@ -18,7 +18,7 @@ use crate::{
   LemmyContext,
 };
 use actix_web::web::Data;
-use lemmy_api_structs::{post::*, APIError};
+use lemmy_api_structs::post::*;
 use lemmy_db::{
   comment_view::*,
   community_view::*,
@@ -36,6 +36,7 @@ use lemmy_db::{
 use lemmy_utils::{
   is_valid_post_title,
   make_apub_endpoint,
+  APIError,
   ConnectionId,
   EndpointType,
   LemmyError,
index abc4161e74751c7701a2fcbe95bc9811df77084f..8bcc4b77a393364a7c999ad20a96d00f4e556642 100644 (file)
@@ -18,7 +18,7 @@ use crate::{
 };
 use actix_web::web::Data;
 use anyhow::Context;
-use lemmy_api_structs::{site::*, user::Register, APIError};
+use lemmy_api_structs::{site::*, user::Register};
 use lemmy_db::{
   category::*,
   comment_view::*,
@@ -35,7 +35,7 @@ use lemmy_db::{
   SearchType,
   SortType,
 };
-use lemmy_utils::{location_info, settings::Settings, ConnectionId, LemmyError};
+use lemmy_utils::{location_info, settings::Settings, APIError, ConnectionId, LemmyError};
 use log::{debug, info};
 use std::str::FromStr;
 
index a40f296e85b42e094cfed8cf98b1f840ace0943f..1a71b3aa08d08c0f80d50ef84933081f1474bda7 100644 (file)
@@ -14,7 +14,7 @@ use anyhow::Context;
 use bcrypt::verify;
 use captcha::{gen, Difficulty};
 use chrono::Duration;
-use lemmy_api_structs::{user::*, APIError};
+use lemmy_api_structs::user::*;
 use lemmy_db::{
   comment::*,
   comment_view::*,
@@ -51,6 +51,7 @@ use lemmy_utils::{
   remove_slurs,
   send_email,
   settings::Settings,
+  APIError,
   ConnectionId,
   EndpointType,
   LemmyError,
index 380dc445494b9e985d8b657f07596e3ee4e58279..d811d908a0f08b9223d78c895d57f757e30ef0c7 100644 (file)
@@ -1,25 +1,25 @@
 #![recursion_limit = "512"]
 #[macro_use]
-pub extern crate strum_macros;
+extern crate strum_macros;
 #[macro_use]
-pub extern crate lazy_static;
-pub extern crate actix;
-pub extern crate actix_web;
-pub extern crate base64;
-pub extern crate bcrypt;
-pub extern crate captcha;
-pub extern crate chrono;
-pub extern crate diesel;
-pub extern crate dotenv;
-pub extern crate jsonwebtoken;
+extern crate lazy_static;
+extern crate actix;
+extern crate actix_web;
+extern crate base64;
+extern crate bcrypt;
+extern crate captcha;
+extern crate chrono;
+extern crate diesel;
+extern crate dotenv;
+extern crate jsonwebtoken;
 extern crate log;
-pub extern crate openssl;
-pub extern crate reqwest;
-pub extern crate rss;
-pub extern crate serde;
-pub extern crate serde_json;
-pub extern crate sha2;
-pub extern crate strum;
+extern crate openssl;
+extern crate reqwest;
+extern crate rss;
+extern crate serde;
+extern crate serde_json;
+extern crate sha2;
+extern crate strum;
 
 pub mod api;
 pub mod apub;
index 48549e4672c04b9d11f0e071b3f1d148e184ac20..92619b7cd2806c8b491968724e189219a1bff22b 100644 (file)
@@ -1,7 +1,5 @@
 #[macro_use]
 extern crate diesel_migrations;
-#[macro_use]
-pub extern crate lazy_static;
 
 use actix::prelude::*;
 use actix_web::{
@@ -17,6 +15,7 @@ use diesel::{
   r2d2::{ConnectionManager, Pool},
   PgConnection,
 };
+use lazy_static::lazy_static;
 use lemmy_db::get_database_url_from_env;
 use lemmy_rate_limit::{rate_limiter::RateLimiter, RateLimit};
 use lemmy_server::{
index 6a715f47294145340cd6a2804c5ffd6b832c15cd..dd727df971ffc6c55bc3bdbfd891708f95113f68 100644 (file)
@@ -2,7 +2,7 @@ use crate::{api::Perform, LemmyContext};
 use actix_web::{error::ErrorBadRequest, *};
 use lemmy_api_structs::{comment::*, community::*, post::*, site::*, user::*};
 use lemmy_rate_limit::RateLimit;
-use serde::Serialize;
+use serde::Deserialize;
 
 pub fn config(cfg: &mut web::ServiceConfig, rate_limit: &RateLimit) {
   cfg.service(
@@ -187,22 +187,22 @@ where
   Ok(res)
 }
 
-async fn route_get<Data>(
+async fn route_get<'a, Data>(
   data: web::Query<Data>,
   context: web::Data<LemmyContext>,
 ) -> Result<HttpResponse, Error>
 where
-  Data: Serialize + Send + 'static + Perform,
+  Data: Deserialize<'a> + Send + 'static + Perform,
 {
   perform::<Data>(data.0, context).await
 }
 
-async fn route_post<Data>(
+async fn route_post<'a, Data>(
   data: web::Json<Data>,
   context: web::Data<LemmyContext>,
 ) -> Result<HttpResponse, Error>
 where
-  Data: Serialize + Send + 'static + Perform,
+  Data: Deserialize<'a> + Send + 'static + Perform,
 {
   perform::<Data>(data.0, context).await
 }
index cb73b4644e8b58f8e7e3ae694b8487c32f95bb7b..b8066eece94efce2efb772266871aab4741420b0 100644 (file)
@@ -13,9 +13,18 @@ use diesel::{
   r2d2::{ConnectionManager, Pool},
   PgConnection,
 };
-use lemmy_api_structs::{comment::*, community::*, post::*, site::*, user::*, APIError};
+use lemmy_api_structs::{comment::*, community::*, post::*, site::*, user::*};
 use lemmy_rate_limit::RateLimit;
-use lemmy_utils::{location_info, CommunityId, ConnectionId, IPAddr, LemmyError, PostId, UserId};
+use lemmy_utils::{
+  location_info,
+  APIError,
+  CommunityId,
+  ConnectionId,
+  IPAddr,
+  LemmyError,
+  PostId,
+  UserId,
+};
 use rand::rngs::ThreadRng;
 use reqwest::Client;
 use serde::Serialize;