use crate::chat_server::ChatServer;
use actix::Addr;
use background_jobs::QueueHandle;
-use lemmy_db_queries::DbPool;
-use lemmy_utils::LemmyError;
-use reqwest::Client;
+use lemmy_db_schema::{source::secret::Secret, DbPool};
+use lemmy_utils::{settings::structs::Settings, LemmyError};
+use reqwest_middleware::ClientWithMiddleware;
use serde::Serialize;
pub mod chat_server;
pub mod handlers;
pub mod messages;
pub mod routes;
+pub mod send;
pub struct LemmyContext {
- pub pool: DbPool,
- pub chat_server: Addr<ChatServer>,
- pub client: Client,
- pub activity_queue: QueueHandle,
+ pool: DbPool,
+ chat_server: Addr<ChatServer>,
+ client: ClientWithMiddleware,
+ activity_queue: QueueHandle,
+ settings: Settings,
+ secret: Secret,
}
impl LemmyContext {
pub fn create(
pool: DbPool,
chat_server: Addr<ChatServer>,
- client: Client,
+ client: ClientWithMiddleware,
activity_queue: QueueHandle,
+ settings: Settings,
+ secret: Secret,
) -> LemmyContext {
LemmyContext {
pool,
chat_server,
client,
activity_queue,
+ settings,
+ secret,
}
}
pub fn pool(&self) -> &DbPool {
pub fn chat_server(&self) -> &Addr<ChatServer> {
&self.chat_server
}
- pub fn client(&self) -> &Client {
+ pub fn client(&self) -> &ClientWithMiddleware {
&self.client
}
pub fn activity_queue(&self) -> &QueueHandle {
&self.activity_queue
}
+ pub fn settings(&self) -> Settings {
+ // TODO hacky solution to be able to hotload the settings.
+ Settings::get()
+ }
+ pub fn secret(&self) -> &Secret {
+ &self.secret
+ }
}
impl Clone for LemmyContext {
chat_server: self.chat_server.clone(),
client: self.client.clone(),
activity_queue: self.activity_queue.clone(),
+ settings: self.settings.clone(),
+ secret: self.secret.clone(),
}
}
}
Ok(serde_json::to_string(&response)?)
}
-#[derive(EnumString, ToString, Debug, Clone)]
+#[derive(EnumString, Display, Debug, Clone)]
pub enum UserOperation {
Login,
GetCaptcha,
CreatePostLike,
LockPost,
StickyPost,
+ MarkPostAsRead,
SavePost,
CreatePostReport,
ResolvePostReport,
ListPostReports,
GetReportCount,
+ GetUnreadCount,
+ VerifyEmail,
FollowCommunity,
- GetFollowedCommunities,
GetReplies,
GetPersonMentions,
MarkPersonMentionAsRead,
BanFromCommunity,
AddModToCommunity,
AddAdmin,
+ GetUnreadRegistrationApplicationCount,
+ ListRegistrationApplications,
+ ApproveRegistrationApplication,
BanPerson,
+ GetBannedPersons,
Search,
+ ResolveObject,
MarkAllAsRead,
SaveUserSettings,
TransferCommunity,
- TransferSite,
+ LeaveAdmin,
PasswordReset,
PasswordChange,
MarkPrivateMessageAsRead,
PostJoin,
CommunityJoin,
ModJoin,
+ ChangePassword,
+ GetSiteMetadata,
+ BlockCommunity,
+ BlockPerson,
}
-#[derive(EnumString, ToString, Debug, Clone)]
+#[derive(EnumString, Display, Debug, Clone)]
pub enum UserOperationCrud {
// Site
CreateSite,
RemovePost,
// Comment
CreateComment,
+ GetComment,
GetComments,
EditComment,
DeleteComment,