Various things refactored (#95)

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
This commit is contained in:
nutomic 2020-09-03 19:45:12 +00:00 committed by dessalines
parent af364e7fe0
commit bd0e69b2bb
43 changed files with 245 additions and 245 deletions

3
server/Cargo.lock generated vendored
View 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",
]

View 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"

View 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>,
}

View 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,

View 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(),
}
}
}

View 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,

View 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,

View 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,
}

View 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,

View 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,

View 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,

View 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 {

View 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,

View 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 {

View 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, *};

View 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,

View 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 {

View 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,

View 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,

View 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 {

View 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,

View 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 {

View 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,

View 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 {

View 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,

View 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,

View 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 {

View 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 {

View 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"

View 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};

View 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;

View 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"

View 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,

View 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,

View 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,

View 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;

View 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,

View 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;

View 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,

View 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;

View 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::{

View 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
}

View 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;