diff --git a/rustmail/src/api/handler/auth/callback.rs b/rustmail/src/api/handler/auth/callback.rs index 1a2f4111..6249aaa3 100644 --- a/rustmail/src/api/handler/auth/callback.rs +++ b/rustmail/src/api/handler/auth/callback.rs @@ -1,4 +1,4 @@ -use crate::BotState; +use crate::prelude::types::*; use axum::extract::{Query, State}; use axum::response::Redirect; use axum_extra::extract::cookie::{Cookie, CookieJar, SameSite}; diff --git a/rustmail/src/api/handler/auth/login.rs b/rustmail/src/api/handler/auth/login.rs index 8c2d9c0a..ca5e9267 100644 --- a/rustmail/src/api/handler/auth/login.rs +++ b/rustmail/src/api/handler/auth/login.rs @@ -1,5 +1,5 @@ -use crate::BotState; -use crate::api::utils::get_user_id_from_session::get_user_id_from_session; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::extract::{Query, State}; use axum::response::Redirect; use axum_extra::extract::CookieJar; diff --git a/rustmail/src/api/handler/auth/logout.rs b/rustmail/src/api/handler/auth/logout.rs index 8d73c176..70496a26 100644 --- a/rustmail/src/api/handler/auth/logout.rs +++ b/rustmail/src/api/handler/auth/logout.rs @@ -1,5 +1,5 @@ -use crate::BotState; -use crate::api::utils::get_user_id_from_session::get_user_id_from_session; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::extract::State; use axum::response::Redirect; use axum_extra::extract::CookieJar; diff --git a/rustmail/src/api/handler/auth/mod.rs b/rustmail/src/api/handler/auth/mod.rs index 47c99973..e1da44e5 100644 --- a/rustmail/src/api/handler/auth/mod.rs +++ b/rustmail/src/api/handler/auth/mod.rs @@ -1,3 +1,7 @@ pub mod callback; pub mod login; pub mod logout; + +pub use callback::*; +pub use login::*; +pub use logout::*; diff --git a/rustmail/src/api/handler/bot/mod.rs b/rustmail/src/api/handler/bot/mod.rs index d85da0f3..0c63b229 100644 --- a/rustmail/src/api/handler/bot/mod.rs +++ b/rustmail/src/api/handler/bot/mod.rs @@ -3,3 +3,9 @@ pub mod start; pub mod status; pub mod stop; pub mod tickets; + +pub use restart::*; +pub use start::*; +pub use status::*; +pub use stop::*; +pub use tickets::*; diff --git a/rustmail/src/api/handler/bot/restart.rs b/rustmail/src/api/handler/bot/restart.rs index a91c7870..fc04199c 100644 --- a/rustmail/src/api/handler/bot/restart.rs +++ b/rustmail/src/api/handler/bot/restart.rs @@ -1,5 +1,5 @@ -use crate::api::utils::ping_internal::ping_internal; -use crate::{BotState, BotStatus}; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Json; use axum::extract::State; use axum::http::StatusCode; diff --git a/rustmail/src/api/handler/bot/start.rs b/rustmail/src/api/handler/bot/start.rs index e5d92c03..e01edd70 100644 --- a/rustmail/src/api/handler/bot/start.rs +++ b/rustmail/src/api/handler/bot/start.rs @@ -1,6 +1,6 @@ use crate::bot::run_bot; -use crate::config::load_config; -use crate::{BotState, BotStatus}; +use crate::prelude::config::*; +use crate::prelude::types::*; use axum::Json; use axum::extract::State; use axum::http::StatusCode; diff --git a/rustmail/src/api/handler/bot/status.rs b/rustmail/src/api/handler/bot/status.rs index 3868b58b..d2b3063e 100644 --- a/rustmail/src/api/handler/bot/status.rs +++ b/rustmail/src/api/handler/bot/status.rs @@ -1,4 +1,4 @@ -use crate::BotState; +use crate::prelude::types::*; use axum::Json; use axum::extract::State; use axum::http::StatusCode; @@ -10,11 +10,11 @@ pub async fn handle_status_bot(State(bot_state): State>>) -> let state_lock = bot_state.lock().await; match state_lock.status { - crate::BotStatus::Running { .. } => ( + BotStatus::Running { .. } => ( StatusCode::OK, Json(serde_json::json!({"status": "running"})), ), - crate::BotStatus::Stopped => ( + BotStatus::Stopped => ( StatusCode::OK, Json(serde_json::json!({"status": "stopped"})), ), diff --git a/rustmail/src/api/handler/bot/stop.rs b/rustmail/src/api/handler/bot/stop.rs index 1f9e4b18..f58f56c4 100644 --- a/rustmail/src/api/handler/bot/stop.rs +++ b/rustmail/src/api/handler/bot/stop.rs @@ -1,4 +1,4 @@ -use crate::{BotState, BotStatus}; +use crate::prelude::types::*; use axum::Json; use axum::extract::State; use axum::http::StatusCode; diff --git a/rustmail/src/api/handler/bot/tickets.rs b/rustmail/src/api/handler/bot/tickets.rs index 713845ab..370722ba 100644 --- a/rustmail/src/api/handler/bot/tickets.rs +++ b/rustmail/src/api/handler/bot/tickets.rs @@ -1,4 +1,4 @@ -use crate::BotState; +use crate::prelude::types::*; use axum::{ Json, extract::{Query, State}, diff --git a/rustmail/src/api/handler/mod.rs b/rustmail/src/api/handler/mod.rs index 6c84d296..ca20cbde 100644 --- a/rustmail/src/api/handler/mod.rs +++ b/rustmail/src/api/handler/mod.rs @@ -2,3 +2,8 @@ pub mod auth; pub mod bot; pub mod panel; pub mod user; + +pub use auth::*; +pub use bot::*; +pub use panel::*; +pub use user::*; diff --git a/rustmail/src/api/handler/panel/mod.rs b/rustmail/src/api/handler/panel/mod.rs index 7a6b9583..0e1b226a 100644 --- a/rustmail/src/api/handler/panel/mod.rs +++ b/rustmail/src/api/handler/panel/mod.rs @@ -1 +1,3 @@ pub mod panel; + +pub use panel::*; diff --git a/rustmail/src/api/handler/panel/panel.rs b/rustmail/src/api/handler/panel/panel.rs index ad61332b..bfef7079 100644 --- a/rustmail/src/api/handler/panel/panel.rs +++ b/rustmail/src/api/handler/panel/panel.rs @@ -1,4 +1,4 @@ -use crate::BotState; +use crate::prelude::types::*; use axum::extract::State; use axum::response::IntoResponse; use std::sync::Arc; diff --git a/rustmail/src/api/handler/user/avatar.rs b/rustmail/src/api/handler/user/avatar.rs index e0df0276..1ff659e3 100644 --- a/rustmail/src/api/handler/user/avatar.rs +++ b/rustmail/src/api/handler/user/avatar.rs @@ -1,5 +1,5 @@ -use crate::BotState; -use crate::api::utils::get_user_id_from_session::get_user_id_from_session; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::extract::State; use axum::response::IntoResponse; use axum_extra::extract::CookieJar; diff --git a/rustmail/src/api/handler/user/mod.rs b/rustmail/src/api/handler/user/mod.rs index 124369cf..1e966d18 100644 --- a/rustmail/src/api/handler/user/mod.rs +++ b/rustmail/src/api/handler/user/mod.rs @@ -1 +1,3 @@ pub mod avatar; + +pub use avatar::*; diff --git a/rustmail/src/api/middleware/auth.rs b/rustmail/src/api/middleware/auth.rs index 995aea88..d977ab2c 100644 --- a/rustmail/src/api/middleware/auth.rs +++ b/rustmail/src/api/middleware/auth.rs @@ -1,5 +1,5 @@ -use crate::api::utils::get_user_id_from_session::get_user_id_from_session; -use crate::{BotCommand, BotState, BotStatus}; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::extract::State; use axum::extract::{ConnectInfo, Request}; use axum::middleware::Next; diff --git a/rustmail/src/api/middleware/mod.rs b/rustmail/src/api/middleware/mod.rs index 0e4a05d5..efadf860 100644 --- a/rustmail/src/api/middleware/mod.rs +++ b/rustmail/src/api/middleware/mod.rs @@ -1 +1,3 @@ pub mod auth; + +pub use auth::*; diff --git a/rustmail/src/api/mod.rs b/rustmail/src/api/mod.rs index ffd27fd5..af728132 100644 --- a/rustmail/src/api/mod.rs +++ b/rustmail/src/api/mod.rs @@ -3,3 +3,9 @@ pub mod middleware; pub mod router; pub mod routes; pub mod utils; + +pub use handler::*; +pub use middleware::*; +pub use router::*; +pub use routes::*; +pub use utils::*; diff --git a/rustmail/src/api/router.rs b/rustmail/src/api/router.rs index 3a667ee1..272993c9 100644 --- a/rustmail/src/api/router.rs +++ b/rustmail/src/api/router.rs @@ -1,8 +1,5 @@ -use crate::BotState; -use crate::api::routes::auth::create_auth_router; -use crate::api::routes::bot::create_bot_router; -use crate::api::routes::panel::create_panel_router; -use crate::api::routes::user::create_user_router; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Router; use std::sync::Arc; use tokio::sync::Mutex; diff --git a/rustmail/src/api/routes/auth.rs b/rustmail/src/api/routes/auth.rs index 249f03f7..2debcafd 100644 --- a/rustmail/src/api/routes/auth.rs +++ b/rustmail/src/api/routes/auth.rs @@ -1,7 +1,5 @@ -use crate::BotState; -use crate::api::handler::auth::callback::handle_callback; -use crate::api::handler::auth::login::handle_login; -use crate::api::handler::auth::logout::handle_logout; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Router; use axum::routing::get; use std::sync::Arc; diff --git a/rustmail/src/api/routes/bot.rs b/rustmail/src/api/routes/bot.rs index e982c892..58ccefcb 100644 --- a/rustmail/src/api/routes/bot.rs +++ b/rustmail/src/api/routes/bot.rs @@ -1,10 +1,5 @@ -use crate::BotState; -use crate::api::handler::bot::restart::handle_restart_bot; -use crate::api::handler::bot::start::handle_start_bot; -use crate::api::handler::bot::status::handle_status_bot; -use crate::api::handler::bot::stop::handle_stop_bot; -use crate::api::handler::bot::tickets::handle_tickets_bot; -use crate::api::middleware::auth::auth_middleware; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Router; use axum::routing::{get, post}; use std::sync::Arc; diff --git a/rustmail/src/api/routes/mod.rs b/rustmail/src/api/routes/mod.rs index 6c84d296..ca20cbde 100644 --- a/rustmail/src/api/routes/mod.rs +++ b/rustmail/src/api/routes/mod.rs @@ -2,3 +2,8 @@ pub mod auth; pub mod bot; pub mod panel; pub mod user; + +pub use auth::*; +pub use bot::*; +pub use panel::*; +pub use user::*; diff --git a/rustmail/src/api/routes/panel.rs b/rustmail/src/api/routes/panel.rs index f35c1815..ae3a7abf 100644 --- a/rustmail/src/api/routes/panel.rs +++ b/rustmail/src/api/routes/panel.rs @@ -1,6 +1,5 @@ -use crate::BotState; -use crate::api::handler::panel::panel::handle_panel_check; -use crate::api::middleware::auth::auth_middleware; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Router; use axum::routing::get; use std::sync::Arc; diff --git a/rustmail/src/api/routes/user.rs b/rustmail/src/api/routes/user.rs index 6af1d61b..43aef119 100644 --- a/rustmail/src/api/routes/user.rs +++ b/rustmail/src/api/routes/user.rs @@ -1,6 +1,5 @@ -use crate::BotState; -use crate::api::handler::user::avatar::handle_get_user_avatar; -use crate::api::middleware::auth::auth_middleware; +use crate::prelude::api::*; +use crate::prelude::types::*; use axum::Router; use axum::routing::get; use std::sync::Arc; diff --git a/rustmail/src/api/utils/mod.rs b/rustmail/src/api/utils/mod.rs index 8f5fd4d4..f4d433bd 100644 --- a/rustmail/src/api/utils/mod.rs +++ b/rustmail/src/api/utils/mod.rs @@ -1,2 +1,5 @@ pub mod get_user_id_from_session; pub mod ping_internal; + +pub use get_user_id_from_session::*; +pub use ping_internal::*; diff --git a/rustmail/src/bot.rs b/rustmail/src/bot.rs index 2cf3965d..ce6f18b9 100644 --- a/rustmail/src/bot.rs +++ b/rustmail/src/bot.rs @@ -1,36 +1,10 @@ -use crate::commands::CommandRegistry; -use crate::commands::add_reminder::slash_command::add_reminder::AddReminderCommand; -use crate::commands::add_staff::slash_command::add_staff::AddStaffCommand; -use crate::commands::alert::slash_command::alert::AlertCommand; -use crate::commands::close::slash_command::close::CloseCommand; -use crate::commands::delete::slash_command::delete::DeleteCommand; -use crate::commands::edit::slash_command::edit::EditCommand; -use crate::commands::force_close::slash_command::force_close::ForceCloseCommand; -use crate::commands::help::slash_command::help::HelpCommand; -use crate::commands::id::slash_command::id::IdCommand; -use crate::commands::logs::slash_command::logs::LogsCommand; -use crate::commands::move_thread::slash_command::move_thread::MoveCommand; -use crate::commands::new_thread::slash_command::new_thread::NewThreadCommand; -use crate::commands::recover::slash_command::recover::RecoverCommand; -use crate::commands::release::slash_command::release::ReleaseCommand; -use crate::commands::remove_reminder::slash_command::remove_reminder::RemoveReminderCommand; -use crate::commands::remove_staff::slash_command::remove_staff::RemoveStaffCommand; -use crate::commands::reply::slash_command::reply::ReplyCommand; -use crate::commands::take::slash_command::take::TakeCommand; -use crate::config::load_config; -use crate::errors::ModmailError; -use crate::errors::types::ConfigError; -use crate::handlers::guild_handler::GuildHandler; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::handlers::guild_members_handler::GuildMembersHandler; -use crate::handlers::guild_message_reactions_handler::GuildMessageReactionsHandler; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::handlers::guild_moderation_handler::GuildModerationHandler; -use crate::handlers::ready_handler::ReadyHandler; -use crate::handlers::typing_proxy_handler::TypingProxyHandler; -use crate::panel_commands::user::is_member::is_member; -use crate::types::logs::PaginationContext; -use crate::{BotCommand, BotState, BotStatus, db}; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::panel_commands::*; +use crate::prelude::types::*; use base64::Engine; use rand::RngCore; use serenity::all::{ClientBuilder, GatewayIntents}; @@ -43,9 +17,7 @@ use tokio::sync::Mutex; use tokio::{select, spawn}; pub async fn init_bot_state() -> Arc> { - let pool = db::operations::init_database() - .await - .expect("An error occured!"); + let pool = init_database().await.expect("An error occured!"); println!("Database connected!"); let mut bytes = [0u8; 32]; diff --git a/rustmail/src/commands/add_reminder/common.rs b/rustmail/src/commands/add_reminder/common.rs index fe4bae9e..aaba806d 100644 --- a/rustmail/src/commands/add_reminder/common.rs +++ b/rustmail/src/commands/add_reminder/common.rs @@ -1,7 +1,6 @@ -use crate::config::Config; -use crate::db::reminders::{Reminder, is_reminder_active, update_reminder_status}; -use crate::utils::conversion::hex_string_to_int::hex_string_to_int; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::utils::*; use chrono::Local; use serenity::all::{ChannelId, CommandInteraction, Context, Message, UserId}; use sqlx::SqlitePool; diff --git a/rustmail/src/commands/add_reminder/mod.rs b/rustmail/src/commands/add_reminder/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/add_reminder/mod.rs +++ b/rustmail/src/commands/add_reminder/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/add_reminder/slash_command/add_reminder.rs b/rustmail/src/commands/add_reminder/slash_command/add_reminder.rs index 913fcba9..92cd587b 100644 --- a/rustmail/src/commands/add_reminder/slash_command/add_reminder.rs +++ b/rustmail/src/commands/add_reminder/slash_command/add_reminder.rs @@ -1,14 +1,10 @@ -use crate::commands::add_reminder::common::{ - send_register_confirmation_from_command, spawn_reminder, -}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::reminders::{Reminder, insert_reminder}; -use crate::db::threads::get_thread_by_user_id; -use crate::errors::{CommandError, ModmailError, ModmailResult, ThreadError, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use chrono::{Local, NaiveTime, TimeZone}; use regex::Regex; use serenity::FutureExt; @@ -100,7 +96,7 @@ impl RegistrableCommand for AddReminderCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let _ = defer_response(&ctx, &command).await; diff --git a/rustmail/src/commands/add_reminder/slash_command/mod.rs b/rustmail/src/commands/add_reminder/slash_command/mod.rs index 19dd0ee8..7f4f3fa0 100644 --- a/rustmail/src/commands/add_reminder/slash_command/mod.rs +++ b/rustmail/src/commands/add_reminder/slash_command/mod.rs @@ -1 +1,3 @@ pub mod add_reminder; + +pub use add_reminder::*; diff --git a/rustmail/src/commands/add_reminder/text_command/add_reminder.rs b/rustmail/src/commands/add_reminder/text_command/add_reminder.rs index f5fd48c4..6a267a79 100644 --- a/rustmail/src/commands/add_reminder/text_command/add_reminder.rs +++ b/rustmail/src/commands/add_reminder/text_command/add_reminder.rs @@ -1,12 +1,9 @@ -use crate::commands::add_reminder::common::{ - send_register_confirmation_from_message, spawn_reminder, -}; -use crate::config::Config; -use crate::db::reminders::{Reminder, insert_reminder}; -use crate::db::threads::get_thread_by_user_id; -use crate::errors::{CommandError, ModmailError, ModmailResult, ThreadError, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::command::extract_reply_content::extract_reply_content; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use chrono::{Local, NaiveTime, TimeZone}; use regex::Regex; use serenity::all::{Context, Message}; @@ -21,7 +18,7 @@ pub async fn add_reminder( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let content = match extract_reply_content(&msg.content, &config.command.prefix, &["remind", "rem"]) { diff --git a/rustmail/src/commands/add_reminder/text_command/mod.rs b/rustmail/src/commands/add_reminder/text_command/mod.rs index 19dd0ee8..7f4f3fa0 100644 --- a/rustmail/src/commands/add_reminder/text_command/mod.rs +++ b/rustmail/src/commands/add_reminder/text_command/mod.rs @@ -1 +1,3 @@ pub mod add_reminder; + +pub use add_reminder::*; diff --git a/rustmail/src/commands/add_staff/common.rs b/rustmail/src/commands/add_staff/common.rs index 95aeb257..e2989a6b 100644 --- a/rustmail/src/commands/add_staff/common.rs +++ b/rustmail/src/commands/add_staff/common.rs @@ -1,5 +1,5 @@ -use crate::config::Config; -use crate::errors::ModmailResult; +use crate::prelude::config::*; +use crate::prelude::errors::*; use serenity::all::{ ChannelId, Context, Message, PermissionOverwrite, PermissionOverwriteType, UserId, }; @@ -26,7 +26,7 @@ pub async fn add_user_to_channel( Ok(()) } -pub async fn extract_user_id(msg: &Message, config: &Config) -> String { +pub async fn extract_staff_id(msg: &Message, config: &Config) -> String { let content = msg.content.trim(); let prefix = &config.command.prefix; let command_names = ["addmod", "am"]; diff --git a/rustmail/src/commands/add_staff/mod.rs b/rustmail/src/commands/add_staff/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/add_staff/mod.rs +++ b/rustmail/src/commands/add_staff/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/add_staff/slash_command/add_staff.rs b/rustmail/src/commands/add_staff/slash_command/add_staff.rs index 58d84709..025ac372 100644 --- a/rustmail/src/commands/add_staff/slash_command/add_staff.rs +++ b/rustmail/src/commands/add_staff/slash_command/add_staff.rs @@ -1,14 +1,10 @@ -use crate::commands::add_staff::common::add_user_to_channel; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::thread_exists; -use crate::errors::CommandError::InvalidFormat; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, @@ -80,7 +76,7 @@ impl RegistrableCommand for AddStaffCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; @@ -126,10 +122,10 @@ impl RegistrableCommand for AddStaffCommand { Ok(()) } - Err(..) => Err(ModmailError::Command(InvalidFormat)), + Err(..) => Err(ModmailError::Command(CommandError::InvalidFormat)), } } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } }) } diff --git a/rustmail/src/commands/add_staff/slash_command/mod.rs b/rustmail/src/commands/add_staff/slash_command/mod.rs index 3d1dc659..b8b7f744 100644 --- a/rustmail/src/commands/add_staff/slash_command/mod.rs +++ b/rustmail/src/commands/add_staff/slash_command/mod.rs @@ -1 +1,3 @@ pub mod add_staff; + +pub use add_staff::*; diff --git a/rustmail/src/commands/add_staff/text_command/add_staff.rs b/rustmail/src/commands/add_staff/text_command/add_staff.rs index 8db61f9a..bff1ea41 100644 --- a/rustmail/src/commands/add_staff/text_command/add_staff.rs +++ b/rustmail/src/commands/add_staff/text_command/add_staff.rs @@ -1,12 +1,9 @@ -use crate::commands::add_staff::common::add_user_to_channel; -use crate::commands::add_staff::common::extract_user_id; -use crate::config::Config; -use crate::db::thread_exists; -use crate::errors::CommandError::InvalidFormat; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::{ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message, UserId}; use std::collections::HashMap; use std::sync::Arc; @@ -20,17 +17,17 @@ pub async fn add_staff( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; - let user_id_str = extract_user_id(&msg, config).await; + let user_id_str = extract_staff_id(&msg, config).await; if user_id_str.is_empty() { - return Err(ModmailError::Command(InvalidFormat)); + return Err(ModmailError::Command(CommandError::InvalidFormat)); } let user_id = match user_id_str.parse::() { Ok(id) => UserId::new(id), - Err(_) => return Err(ModmailError::Command(InvalidFormat)), + Err(_) => return Err(ModmailError::Command(CommandError::InvalidFormat)), }; if thread_exists(msg.author.id, pool).await { @@ -48,9 +45,9 @@ pub async fn add_staff( Ok(()) } - Err(..) => Err(ModmailError::Command(InvalidFormat)), + Err(..) => Err(ModmailError::Command(CommandError::InvalidFormat)), } } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } } diff --git a/rustmail/src/commands/add_staff/text_command/mod.rs b/rustmail/src/commands/add_staff/text_command/mod.rs index 3d1dc659..b8b7f744 100644 --- a/rustmail/src/commands/add_staff/text_command/mod.rs +++ b/rustmail/src/commands/add_staff/text_command/mod.rs @@ -1 +1,3 @@ pub mod add_staff; + +pub use add_staff::*; diff --git a/rustmail/src/commands/alert/common.rs b/rustmail/src/commands/alert/common.rs index e25cbebe..ee4d61c0 100644 --- a/rustmail/src/commands/alert/common.rs +++ b/rustmail/src/commands/alert/common.rs @@ -1,10 +1,7 @@ -use crate::config::Config; -use crate::db::{cancel_alert_for_staff, get_user_id_from_channel_id, set_alert_for_staff}; -use crate::errors::CommandError::AlertDoesNotExist; -use crate::errors::DatabaseError::QueryFailed; -use crate::errors::DiscordError::ApiError; -use crate::errors::{ModmailError, ModmailResult, common}; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::colours::branding::GREEN; use serenity::all::{CommandInteraction, Context, CreateInteractionResponse, Message}; use std::collections::HashMap; @@ -39,7 +36,7 @@ pub async fn get_thread_user_id_from_command( None => { let bot_user = match ctx.http.get_current_user().await { Ok(user) => user, - Err(e) => return Err(ModmailError::Discord(ApiError(e.to_string()))), + Err(e) => return Err(ModmailError::Discord(DiscordError::ApiError(e.to_string()))), }; let bot_user_id = ctx.cache.current_user().id; @@ -93,7 +90,7 @@ pub async fn handle_cancel_alert_from_command( pool: &sqlx::SqlitePool, ) -> ModmailResult<()> { if let Err(_) = cancel_alert_for_staff(command.user.id, user_id, pool).await { - Err(ModmailError::Command(AlertDoesNotExist)) + Err(ModmailError::Command(CommandError::AlertDoesNotExist)) } else { let mut params = HashMap::new(); params.insert("user".to_string(), format!("<@{}>", user_id)); @@ -143,7 +140,9 @@ pub async fn handle_set_alert_from_command( pool: &sqlx::SqlitePool, ) -> ModmailResult<()> { if let Err(e) = set_alert_for_staff(command.user.id, user_id, pool).await { - Err(ModmailError::Database(QueryFailed(e.to_string()))) + Err(ModmailError::Database(DatabaseError::QueryFailed( + e.to_string(), + ))) } else { let mut params = HashMap::new(); params.insert("user".to_string(), format!("<@{}>", user_id)); diff --git a/rustmail/src/commands/alert/mod.rs b/rustmail/src/commands/alert/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/alert/mod.rs +++ b/rustmail/src/commands/alert/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/alert/slash_command/alert.rs b/rustmail/src/commands/alert/slash_command/alert.rs index c0767c67..ac0eb4e4 100644 --- a/rustmail/src/commands/alert/slash_command/alert.rs +++ b/rustmail/src/commands/alert/slash_command/alert.rs @@ -1,13 +1,9 @@ -use crate::commands::alert::common::{ - get_thread_user_id_from_command, handle_cancel_alert_from_command, - handle_set_alert_from_command, -}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, @@ -78,7 +74,7 @@ impl RegistrableCommand for AlertCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; diff --git a/rustmail/src/commands/alert/slash_command/mod.rs b/rustmail/src/commands/alert/slash_command/mod.rs index 811b2abf..18e98477 100644 --- a/rustmail/src/commands/alert/slash_command/mod.rs +++ b/rustmail/src/commands/alert/slash_command/mod.rs @@ -1 +1,3 @@ pub mod alert; + +pub use alert::*; diff --git a/rustmail/src/commands/alert/text_command/alert.rs b/rustmail/src/commands/alert/text_command/alert.rs index a78a46ca..e13710f3 100644 --- a/rustmail/src/commands/alert/text_command/alert.rs +++ b/rustmail/src/commands/alert/text_command/alert.rs @@ -1,10 +1,7 @@ -use crate::commands::alert::common::{ - extract_alert_action, get_thread_user_id_from_msg, handle_cancel_alert_from_msg, - handle_set_alert_from_msg, -}; -use crate::config::Config; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; use serenity::all::{Context, Message}; use std::sync::Arc; @@ -17,7 +14,7 @@ pub async fn alert( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let user_id = get_thread_user_id_from_msg(&ctx, &msg, config, pool).await?; let is_cancel = extract_alert_action(&msg, config).await; diff --git a/rustmail/src/commands/alert/text_command/mod.rs b/rustmail/src/commands/alert/text_command/mod.rs index 811b2abf..18e98477 100644 --- a/rustmail/src/commands/alert/text_command/mod.rs +++ b/rustmail/src/commands/alert/text_command/mod.rs @@ -1 +1,3 @@ pub mod alert; + +pub use alert::*; diff --git a/rustmail/src/commands/anonreply/mod.rs b/rustmail/src/commands/anonreply/mod.rs index 9e9ef4d2..51e29f44 100644 --- a/rustmail/src/commands/anonreply/mod.rs +++ b/rustmail/src/commands/anonreply/mod.rs @@ -1 +1,3 @@ pub mod text_command; + +pub use text_command::*; diff --git a/rustmail/src/commands/anonreply/text_command/anonreply.rs b/rustmail/src/commands/anonreply/text_command/anonreply.rs index 6ca6a5c9..c2c604f7 100644 --- a/rustmail/src/commands/anonreply/text_command/anonreply.rs +++ b/rustmail/src/commands/anonreply/text_command/anonreply.rs @@ -1,11 +1,8 @@ -use crate::config::Config; -use crate::db::operations::allocate_next_message_number; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::command::extract_reply_content::extract_reply_content; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::message::reply_intent::{ReplyIntent, extract_intent}; -use crate::utils::thread::fetch_thread::fetch_thread; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, GuildId, Message, UserId}; use std::collections::HashMap; use std::sync::Arc; @@ -19,7 +16,7 @@ pub async fn anonreply( let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let content = extract_reply_content(&msg.content, &config.command.prefix, &["anonreply", "ar"]); let intent = extract_intent(content, &msg.attachments).await; @@ -38,7 +35,7 @@ pub async fn anonreply( .send_and_forget() .await; - return Err(common::validation_failed("Missing content")); + return Err(validation_failed("Missing content")); }; let thread = fetch_thread(db_pool, &msg.channel_id.to_string()).await?; @@ -67,7 +64,7 @@ pub async fn anonreply( let next_message_number = allocate_next_message_number(&thread.id, db_pool) .await - .map_err(|_| common::validation_failed("Failed to allocate message number"))?; + .map_err(|_| validation_failed("Failed to allocate message number"))?; let _ = msg.delete(&ctx.http).await; @@ -109,7 +106,7 @@ pub async fn anonreply( .to_channel(msg.channel_id) .send_and_forget() .await; - return Err(common::validation_failed("Failed to send to thread")); + return Err(validation_failed("Failed to send to thread")); } }; diff --git a/rustmail/src/commands/anonreply/text_command/mod.rs b/rustmail/src/commands/anonreply/text_command/mod.rs index 8f15f19a..248f1fa3 100644 --- a/rustmail/src/commands/anonreply/text_command/mod.rs +++ b/rustmail/src/commands/anonreply/text_command/mod.rs @@ -1 +1,3 @@ pub mod anonreply; + +pub use anonreply::*; diff --git a/rustmail/src/commands/close/mod.rs b/rustmail/src/commands/close/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/close/mod.rs +++ b/rustmail/src/commands/close/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/close/slash_command/close.rs b/rustmail/src/commands/close/slash_command/close.rs index f5007b0b..1e78bf23 100644 --- a/rustmail/src/commands/close/slash_command/close.rs +++ b/rustmail/src/commands/close/slash_command/close.rs @@ -1,19 +1,10 @@ -use crate::commands::close::common::parse_duration_spec; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::{ - close_thread, delete_scheduled_closure, get_scheduled_closure, upsert_scheduled_closure, -}; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::category::{ - get_category_id_from_command, get_category_name_from_command, - get_required_permissions_channel_from_command, -}; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::thread::fetch_thread::fetch_thread; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use chrono::Utc; use serenity::FutureExt; use serenity::all::{ @@ -118,7 +109,7 @@ impl RegistrableCommand for CloseCommand { let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; diff --git a/rustmail/src/commands/close/slash_command/mod.rs b/rustmail/src/commands/close/slash_command/mod.rs index 85b40132..fc1f9eb1 100644 --- a/rustmail/src/commands/close/slash_command/mod.rs +++ b/rustmail/src/commands/close/slash_command/mod.rs @@ -1 +1,3 @@ pub mod close; + +pub use close::*; diff --git a/rustmail/src/commands/close/text_command/close.rs b/rustmail/src/commands/close/text_command/close.rs index 0417ff7d..7cd515f4 100644 --- a/rustmail/src/commands/close/text_command/close.rs +++ b/rustmail/src/commands/close/text_command/close.rs @@ -1,16 +1,9 @@ -use crate::commands::close::common::parse_duration_spec; -use crate::config::Config; -use crate::db::{ - close_thread, delete_scheduled_closure, get_scheduled_closure, upsert_scheduled_closure, -}; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::category::{ - get_category_id_from_message, get_category_name_from_message, - get_required_permissions_channel_from_message, -}; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::thread::fetch_thread::fetch_thread; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use chrono::Utc; use serenity::all::{Channel, Context, GuildId, Message, PermissionOverwriteType, RoleId, UserId}; use std::collections::HashMap; @@ -27,7 +20,7 @@ pub async fn close( let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let content = msg.content.trim(); let prefix = &config.command.prefix; diff --git a/rustmail/src/commands/close/text_command/mod.rs b/rustmail/src/commands/close/text_command/mod.rs index 85b40132..fc1f9eb1 100644 --- a/rustmail/src/commands/close/text_command/mod.rs +++ b/rustmail/src/commands/close/text_command/mod.rs @@ -1 +1,3 @@ pub mod close; + +pub use close::*; diff --git a/rustmail/src/commands/delete/common.rs b/rustmail/src/commands/delete/common.rs index cad6074e..e362db8a 100644 --- a/rustmail/src/commands/delete/common.rs +++ b/rustmail/src/commands/delete/common.rs @@ -1,12 +1,8 @@ -use crate::config::Config; -use crate::db::messages::MessageIds; -use crate::db::repr::Thread; -use crate::db::{ - delete_message, get_message_ids_by_number, get_thread_by_channel_id, - get_user_id_from_channel_id, update_message_numbers_after_deletion, -}; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, Context, Message, MessageId, UserId}; use std::collections::HashMap; @@ -17,21 +13,21 @@ pub async fn get_thread_info( let user_id = match get_user_id_from_channel_id(&channel_id, pool).await { Some(uid) => uid, None => { - return Err(common::validation_failed("Not in a thread")); + return Err(validation_failed("Not in a thread")); } }; let thread = match get_thread_by_channel_id(&channel_id, pool).await { Some(thread) => thread, None => { - return Err(common::validation_failed("Thread not found")); + return Err(validation_failed("Thread not found")); } }; Ok((user_id, thread)) } -pub async fn get_message_ids( +pub async fn get_message_ids_for_delete( user_id: i64, thread: &Thread, message_number: i64, @@ -49,7 +45,7 @@ pub async fn get_message_ids( None => { let mut params = HashMap::new(); params.insert("number".to_string(), message_number.to_string()); - Err(common::message_not_found("Try an other message number.")) + Err(message_not_found("Try an other message number.")) } } } @@ -116,7 +112,7 @@ pub async fn delete_database_message( && let Err(e) = delete_message(dm_msg_id, pool).await { eprintln!("Failed to delete message from database: {}", e); - return Err(common::database_connection_failed()); + return Err(database_connection_failed()); } Ok(()) } diff --git a/rustmail/src/commands/delete/mod.rs b/rustmail/src/commands/delete/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/delete/mod.rs +++ b/rustmail/src/commands/delete/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/delete/slash_command/delete.rs b/rustmail/src/commands/delete/slash_command/delete.rs index f4eeeced..8914f045 100644 --- a/rustmail/src/commands/delete/slash_command/delete.rs +++ b/rustmail/src/commands/delete/slash_command/delete.rs @@ -1,15 +1,10 @@ -use crate::commands::delete::common::{ - delete_database_message, delete_discord_messages, get_message_ids, get_thread_info, - update_message_numbers, -}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::messages::get_thread_message_by_message_id; -use crate::errors::{MessageError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response_ephemeral; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, CommandType, Context, @@ -86,7 +81,7 @@ impl RegistrableCommand for DeleteCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response_ephemeral(&ctx, &command).await?; @@ -134,7 +129,8 @@ impl RegistrableCommand for DeleteCommand { } } - let message_ids = get_message_ids(user_id, &thread, message_number, pool).await?; + let message_ids = + get_message_ids_for_delete(user_id, &thread, message_number, pool).await?; delete_discord_messages(&ctx, &command.channel_id, user_id, &message_ids).await?; delete_database_message(&message_ids, pool).await?; diff --git a/rustmail/src/commands/delete/slash_command/mod.rs b/rustmail/src/commands/delete/slash_command/mod.rs index 0cbafdf6..cbc0911d 100644 --- a/rustmail/src/commands/delete/slash_command/mod.rs +++ b/rustmail/src/commands/delete/slash_command/mod.rs @@ -1 +1,3 @@ pub mod delete; + +pub use delete::*; diff --git a/rustmail/src/commands/delete/text_command/delete.rs b/rustmail/src/commands/delete/text_command/delete.rs index 82a49363..9a6c5e61 100644 --- a/rustmail/src/commands/delete/text_command/delete.rs +++ b/rustmail/src/commands/delete/text_command/delete.rs @@ -1,10 +1,7 @@ -use crate::commands::delete::common::{ - delete_database_message, delete_discord_messages, extract_message_number, get_message_ids, - get_thread_info, send_delete_message, update_message_numbers, -}; -use crate::config::Config; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; use serenity::all::{Context, Message}; use std::sync::Arc; @@ -17,7 +14,7 @@ pub async fn delete( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let (user_id, thread) = get_thread_info(&msg.channel_id.to_string(), pool).await?; let message_number = extract_message_number(&msg, config).await; @@ -28,7 +25,7 @@ pub async fn delete( } let message_number = message_number.unwrap(); - let message_ids = get_message_ids(user_id, &thread, message_number, pool).await?; + let message_ids = get_message_ids_for_delete(user_id, &thread, message_number, pool).await?; delete_discord_messages(&ctx, &msg.channel_id, user_id, &message_ids).await?; delete_database_message(&message_ids, pool).await?; diff --git a/rustmail/src/commands/delete/text_command/mod.rs b/rustmail/src/commands/delete/text_command/mod.rs index 0cbafdf6..cbc0911d 100644 --- a/rustmail/src/commands/delete/text_command/mod.rs +++ b/rustmail/src/commands/delete/text_command/mod.rs @@ -1 +1,3 @@ pub mod delete; + +pub use delete::*; diff --git a/rustmail/src/commands/edit/common.rs b/rustmail/src/commands/edit/common.rs index 8711b294..16c13bda 100644 --- a/rustmail/src/commands/edit/common.rs +++ b/rustmail/src/commands/edit/common.rs @@ -1,7 +1,6 @@ -use crate::config::Config; -use crate::errors::ModmailResult; -use crate::errors::common::invalid_command; -use crate::utils::command::extract_reply_content::extract_reply_content; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::Message; pub fn extract_command_content(msg: &Message, config: &Config) -> ModmailResult { @@ -12,17 +11,13 @@ pub fn extract_command_content(msg: &Message, config: &Config) -> ModmailResult< #[cfg(test)] mod tests { use super::*; - use crate::config::{ - BotConfig, CommandConfig, Config, ErrorHandlingConfig, LanguageConfig, LogsConfig, - NotificationsConfig, ReminderConfig, ThreadConfig, - }; use std::sync::{Arc, Mutex}; fn create_test_config() -> Config { Config { bot: BotConfig { token: "test".to_string(), - mode: crate::config::ServerMode::Dual { + mode: ServerMode::Dual { community_guild_id: 184848, staff_guild_id: 64456, }, diff --git a/rustmail/src/commands/edit/message_ops.rs b/rustmail/src/commands/edit/message_ops.rs index d3456b4f..5e8e4b0e 100644 --- a/rustmail/src/commands/edit/message_ops.rs +++ b/rustmail/src/commands/edit/message_ops.rs @@ -1,13 +1,8 @@ -use crate::config::Config; -use crate::db::messages::{MessageIds, get_thread_message_by_inbox_message_id}; -use crate::db::operations::{ - get_message_ids_by_number, get_thread_by_channel_id, get_user_id_from_channel_id, -}; -use crate::errors::MessageError::{DmAccessFailed, EditFailed}; -use crate::errors::common::{incorrect_message_id, not_found, permission_denied, thread_not_found}; -use crate::errors::{ModmailError, ModmailResult}; -use crate::utils::conversion::hex_string_to_int::hex_string_to_int; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::{ ChannelId, CommandInteraction, Context, EditMessage, GuildId, Message, MessageId, User, UserId, }; @@ -137,7 +132,9 @@ pub async fn edit_inbox_message( .await { Ok(_) => Ok(()), - Err(e) => Err(ModmailError::Message(EditFailed(e.to_string()))), + Err(e) => Err(ModmailError::Message(MessageError::EditFailed( + e.to_string(), + ))), } } @@ -173,10 +170,12 @@ pub async fn edit_dm_message<'a>( let dm_channel = match user_id.create_dm_channel(&ctx.http).await { Ok(channel) => channel, Err(e) => { - return Err(ModmailError::Message(DmAccessFailed(format!( - "Unable to access user DM (Maybe the user doesn't allow private messages from bots) : {}", - e - )))); + return Err(ModmailError::Message(MessageError::DmAccessFailed( + format!( + "Unable to access user DM (Maybe the user doesn't allow private messages from bots) : {}", + e + ), + ))); } }; @@ -185,7 +184,11 @@ pub async fn edit_dm_message<'a>( .await { Ok(_) => Ok(()), - Err(e) => return Err(ModmailError::Message(EditFailed(e.to_string()))), + Err(e) => { + return Err(ModmailError::Message(MessageError::EditFailed( + e.to_string(), + ))); + } }; edit_result diff --git a/rustmail/src/commands/edit/mod.rs b/rustmail/src/commands/edit/mod.rs index d7911e6f..98d13bdc 100644 --- a/rustmail/src/commands/edit/mod.rs +++ b/rustmail/src/commands/edit/mod.rs @@ -3,3 +3,9 @@ pub mod message_ops; pub mod slash_command; pub mod text_command; pub mod validation; + +pub use common::*; +pub use message_ops::*; +pub use slash_command::*; +pub use text_command::*; +pub use validation::*; diff --git a/rustmail/src/commands/edit/slash_command/edit.rs b/rustmail/src/commands/edit/slash_command/edit.rs index 1bbeae95..e8ec69dc 100644 --- a/rustmail/src/commands/edit/slash_command/edit.rs +++ b/rustmail/src/commands/edit/slash_command/edit.rs @@ -1,15 +1,10 @@ -use crate::commands::edit::message_ops::{edit_messages, format_new_message, get_message_ids}; -use crate::commands::edit::validation::validate_edit_permissions; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::{get_thread_message_by_inbox_message_id, update_message_content}; -use crate::errors::common::message_not_found; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::conversion::hex_string_to_int::hex_string_to_int; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, @@ -102,7 +97,7 @@ impl RegistrableCommand for EditCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; diff --git a/rustmail/src/commands/edit/slash_command/mod.rs b/rustmail/src/commands/edit/slash_command/mod.rs index 99946a87..810909e0 100644 --- a/rustmail/src/commands/edit/slash_command/mod.rs +++ b/rustmail/src/commands/edit/slash_command/mod.rs @@ -1 +1,3 @@ pub mod edit; + +pub use edit::*; diff --git a/rustmail/src/commands/edit/text_command/edit.rs b/rustmail/src/commands/edit/text_command/edit.rs index f8a82a75..95a9e8e4 100644 --- a/rustmail/src/commands/edit/text_command/edit.rs +++ b/rustmail/src/commands/edit/text_command/edit.rs @@ -1,18 +1,9 @@ -use crate::commands::edit::common::extract_command_content; -use crate::commands::edit::message_ops::{ - cleanup_command_message, edit_messages, format_new_message, get_message_ids, -}; -use crate::commands::edit::validation::{ - EditCommandInput, parse_edit_command, validate_edit_permissions, -}; -use crate::config::Config; -use crate::db::get_thread_message_by_inbox_message_id; -use crate::db::update_message_content; -use crate::errors::common::message_not_found; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::conversion::hex_string_to_int::hex_string_to_int; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message}; use std::collections::HashMap; use std::sync::Arc; @@ -26,7 +17,7 @@ pub async fn edit( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let raw_content: String = match extract_command_content(&msg, config) { Ok(content) => content, diff --git a/rustmail/src/commands/edit/text_command/mod.rs b/rustmail/src/commands/edit/text_command/mod.rs index 99946a87..810909e0 100644 --- a/rustmail/src/commands/edit/text_command/mod.rs +++ b/rustmail/src/commands/edit/text_command/mod.rs @@ -1 +1,3 @@ pub mod edit; + +pub use edit::*; diff --git a/rustmail/src/commands/edit/validation.rs b/rustmail/src/commands/edit/validation.rs index e9ed2b90..27647ae1 100644 --- a/rustmail/src/commands/edit/validation.rs +++ b/rustmail/src/commands/edit/validation.rs @@ -1,11 +1,9 @@ -use crate::db::messages::get_thread_message_by_inbox_message_id; -use crate::db::{get_message_ids_by_number, get_thread_by_channel_id}; -use crate::errors::common::{not_found, permission_denied, thread_not_found}; -use crate::errors::{ - CommandError, ModmailError, ModmailResult, ValidationError as ErrorValidationError, - command_error, -}; -use crate::i18n::get_translated_message; +use crate::command_error; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::ValidationError as ErrorValidationError; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; use serenity::all::{ChannelId, Context, Message, UserId}; #[derive(Debug)] @@ -40,7 +38,7 @@ impl From for ModmailError { } impl ValidationError { - pub async fn _error_message(&self, config: &crate::config::Config, msg: &Message) -> String { + pub async fn _error_message(&self, config: &Config, msg: &Message) -> String { let key = match self { ValidationError::InvalidFormat => "edit.validation.invalid_format", ValidationError::MissingMessageNumber => "edit.validation.missing_number", @@ -59,7 +57,7 @@ impl ValidationError { .await } - pub async fn _send_error(&self, ctx: &Context, msg: &Message, config: &crate::config::Config) { + pub async fn _send_error(&self, ctx: &Context, msg: &Message, config: &Config) { let error_msg = self._error_message(config, msg).await; let _ = msg.reply(ctx, error_msg).await; } diff --git a/rustmail/src/commands/force_close/common.rs b/rustmail/src/commands/force_close/common.rs index 03081445..0d47913b 100644 --- a/rustmail/src/commands/force_close/common.rs +++ b/rustmail/src/commands/force_close/common.rs @@ -1,5 +1,4 @@ -use crate::errors::DiscordError::ApiError; -use crate::errors::{ModmailError, ModmailResult}; +use crate::prelude::errors::*; use serenity::all::{ChannelId, Context}; pub async fn delete_channel(ctx: &Context, channel_id: ChannelId) -> ModmailResult<()> { @@ -8,6 +7,6 @@ pub async fn delete_channel(ctx: &Context, channel_id: ChannelId) -> ModmailResu println!("Channel {} deleted successfully", channel_id); Ok(()) } - Err(e) => Err(ModmailError::Discord(ApiError(e.to_string()))), + Err(e) => Err(ModmailError::Discord(DiscordError::ApiError(e.to_string()))), } } diff --git a/rustmail/src/commands/force_close/mod.rs b/rustmail/src/commands/force_close/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/force_close/mod.rs +++ b/rustmail/src/commands/force_close/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/force_close/slash_command/force_close.rs b/rustmail/src/commands/force_close/slash_command/force_close.rs index 466c2da6..22d8a43a 100644 --- a/rustmail/src/commands/force_close/slash_command/force_close.rs +++ b/rustmail/src/commands/force_close/slash_command/force_close.rs @@ -1,12 +1,9 @@ -use crate::commands::force_close::common::delete_channel; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::threads::{is_a_ticket_channel, is_orphaned_thread_channel}; -use crate::errors::DatabaseError::QueryFailed; -use crate::errors::ThreadError::{NotAThreadChannel, UserStillInServer}; -use crate::errors::{ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; use serenity::FutureExt; use serenity::all::{CommandInteraction, Context, CreateCommand, ResolvedOption}; use std::sync::Arc; @@ -59,7 +56,7 @@ impl RegistrableCommand for ForceCloseCommand { let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; if !is_a_ticket_channel(command.channel_id, db_pool).await { match command.channel_id.to_channel(&ctx.http).await { @@ -67,7 +64,7 @@ impl RegistrableCommand for ForceCloseCommand { let guild_channel = match channel.guild() { Some(guild_channel) => guild_channel, None => { - return Err(ModmailError::Thread(NotAThreadChannel)); + return Err(ModmailError::Thread(ThreadError::NotAThreadChannel)); } }; @@ -75,12 +72,12 @@ impl RegistrableCommand for ForceCloseCommand { if category_id == config.thread.inbox_category_id { delete_channel(&ctx, command.channel_id).await?; } else { - return Err(ModmailError::Thread(NotAThreadChannel)); + return Err(ModmailError::Thread(ThreadError::NotAThreadChannel)); } } } Err(_) => { - return Err(ModmailError::Thread(NotAThreadChannel)); + return Err(ModmailError::Thread(ThreadError::NotAThreadChannel)); } } } @@ -88,11 +85,11 @@ impl RegistrableCommand for ForceCloseCommand { match is_orphaned_thread_channel(command.channel_id, db_pool).await { Ok(res) => { if !res { - return Err(ModmailError::Thread(UserStillInServer)); + return Err(ModmailError::Thread(ThreadError::UserStillInServer)); } delete_channel(&ctx, command.channel_id).await } - Err(..) => Err(ModmailError::Database(QueryFailed( + Err(..) => Err(ModmailError::Database(DatabaseError::QueryFailed( "Failed to check if thread channel is orphaned".to_string(), ))), } diff --git a/rustmail/src/commands/force_close/slash_command/mod.rs b/rustmail/src/commands/force_close/slash_command/mod.rs index 9b22ca64..8eb0f4c2 100644 --- a/rustmail/src/commands/force_close/slash_command/mod.rs +++ b/rustmail/src/commands/force_close/slash_command/mod.rs @@ -1 +1,3 @@ pub mod force_close; + +pub use force_close::*; diff --git a/rustmail/src/commands/force_close/text_command/force_close.rs b/rustmail/src/commands/force_close/text_command/force_close.rs index fc5bccb8..47e7624d 100644 --- a/rustmail/src/commands/force_close/text_command/force_close.rs +++ b/rustmail/src/commands/force_close/text_command/force_close.rs @@ -1,10 +1,8 @@ -use crate::commands::force_close::common::delete_channel; -use crate::config::Config; -use crate::db::threads::{is_a_ticket_channel, is_orphaned_thread_channel}; -use crate::errors::DatabaseError::QueryFailed; -use crate::errors::ThreadError::{NotAThreadChannel, UserStillInServer}; -use crate::errors::{ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; use serenity::all::{Context, Message}; use std::sync::Arc; @@ -17,25 +15,25 @@ pub async fn force_close( let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; if !is_a_ticket_channel(msg.channel_id, db_pool).await { return match msg.category_id(&ctx.http).await { Some(category_id) if category_id == config.thread.inbox_category_id => { delete_channel(&ctx, msg.channel_id).await } - _ => Err(ModmailError::Thread(NotAThreadChannel)), + _ => Err(ModmailError::Thread(ThreadError::NotAThreadChannel)), }; } match is_orphaned_thread_channel(msg.channel_id, db_pool).await { Ok(res) => { if !res { - return Err(ModmailError::Thread(UserStillInServer)); + return Err(ModmailError::Thread(ThreadError::UserStillInServer)); } delete_channel(&ctx, msg.channel_id).await } - Err(..) => Err(ModmailError::Database(QueryFailed( + Err(..) => Err(ModmailError::Database(DatabaseError::QueryFailed( "Failed to check if thread channel is orphaned".to_string(), ))), } diff --git a/rustmail/src/commands/force_close/text_command/mod.rs b/rustmail/src/commands/force_close/text_command/mod.rs index 9b22ca64..8eb0f4c2 100644 --- a/rustmail/src/commands/force_close/text_command/mod.rs +++ b/rustmail/src/commands/force_close/text_command/mod.rs @@ -1 +1,3 @@ pub mod force_close; + +pub use force_close::*; diff --git a/rustmail/src/commands/help/common.rs b/rustmail/src/commands/help/common.rs index 012d425e..ecb70048 100644 --- a/rustmail/src/commands/help/common.rs +++ b/rustmail/src/commands/help/common.rs @@ -1,8 +1,8 @@ -use crate::commands::CommandRegistry; -use crate::config::Config; -use crate::errors::{CommandError, ModmailError, ModmailResult}; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{CommandInteraction, Context, Message}; use std::sync::Arc; diff --git a/rustmail/src/commands/help/mod.rs b/rustmail/src/commands/help/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/help/mod.rs +++ b/rustmail/src/commands/help/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/help/slash_command/help.rs b/rustmail/src/commands/help/slash_command/help.rs index 016b5f46..4b48b10e 100644 --- a/rustmail/src/commands/help/slash_command/help.rs +++ b/rustmail/src/commands/help/slash_command/help.rs @@ -1,15 +1,14 @@ -use crate::commands::help::common::{display_command_help, display_commands_list}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::errors::ModmailResult; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; +use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, CreateCommandOption, ResolvedOption, }; -use serenity::FutureExt; use std::sync::Arc; pub struct HelpCommand; diff --git a/rustmail/src/commands/help/slash_command/mod.rs b/rustmail/src/commands/help/slash_command/mod.rs index 364f76c1..5249255a 100644 --- a/rustmail/src/commands/help/slash_command/mod.rs +++ b/rustmail/src/commands/help/slash_command/mod.rs @@ -1 +1,3 @@ pub mod help; + +pub use help::*; diff --git a/rustmail/src/commands/help/text_command/help.rs b/rustmail/src/commands/help/text_command/help.rs index 388ab417..3dd72df4 100644 --- a/rustmail/src/commands/help/text_command/help.rs +++ b/rustmail/src/commands/help/text_command/help.rs @@ -1,7 +1,7 @@ -use crate::commands::help::common::{display_command_help, display_commands_list}; -use crate::config::Config; -use crate::errors::ModmailResult; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; use serenity::all::{Context, Message}; use std::sync::Arc; diff --git a/rustmail/src/commands/help/text_command/mod.rs b/rustmail/src/commands/help/text_command/mod.rs index 364f76c1..5249255a 100644 --- a/rustmail/src/commands/help/text_command/mod.rs +++ b/rustmail/src/commands/help/text_command/mod.rs @@ -1 +1,3 @@ pub mod help; + +pub use help::*; diff --git a/rustmail/src/commands/id/mod.rs b/rustmail/src/commands/id/mod.rs index 571237c8..b8524198 100644 --- a/rustmail/src/commands/id/mod.rs +++ b/rustmail/src/commands/id/mod.rs @@ -1,2 +1,5 @@ pub mod slash_command; pub mod text_command; + +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/id/slash_command/id.rs b/rustmail/src/commands/id/slash_command/id.rs index e232c8b0..b3c43446 100644 --- a/rustmail/src/commands/id/slash_command/id.rs +++ b/rustmail/src/commands/id/slash_command/id.rs @@ -1,13 +1,10 @@ -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::{NotAThreadChannel, ThreadNotFound}; -use crate::errors::{DatabaseError, ModmailError, ModmailResult}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{CommandInteraction, Context, ResolvedOption}; use serenity::builder::CreateCommand; @@ -67,14 +64,14 @@ impl RegistrableCommand for IdCommand { defer_response(&ctx, &command).await?; if !is_a_ticket_channel(command.channel_id, pool).await { - return Err(ModmailError::Thread(NotAThreadChannel)); + return Err(ModmailError::Thread(ThreadError::NotAThreadChannel)); } let thread = match get_thread_by_channel_id(&command.channel_id.to_string(), pool).await { Some(thread) => thread, None => { - return Err(ModmailError::Thread(ThreadNotFound)); + return Err(ModmailError::Thread(ThreadError::ThreadNotFound)); } }; diff --git a/rustmail/src/commands/id/slash_command/mod.rs b/rustmail/src/commands/id/slash_command/mod.rs index fd6bb6c4..4d3f0204 100644 --- a/rustmail/src/commands/id/slash_command/mod.rs +++ b/rustmail/src/commands/id/slash_command/mod.rs @@ -1 +1,3 @@ pub mod id; + +pub use id::*; diff --git a/rustmail/src/commands/id/text_command/id.rs b/rustmail/src/commands/id/text_command/id.rs index 034c79ad..a1d100e1 100644 --- a/rustmail/src/commands/id/text_command/id.rs +++ b/rustmail/src/commands/id/text_command/id.rs @@ -1,11 +1,8 @@ -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::common::{database_connection_failed, thread_not_found}; -use crate::errors::{ModmailError, ModmailResult}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message}; use std::sync::Arc; @@ -42,6 +39,6 @@ pub async fn id( Ok(()) } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } } diff --git a/rustmail/src/commands/id/text_command/mod.rs b/rustmail/src/commands/id/text_command/mod.rs index fd6bb6c4..4d3f0204 100644 --- a/rustmail/src/commands/id/text_command/mod.rs +++ b/rustmail/src/commands/id/text_command/mod.rs @@ -1 +1,3 @@ pub mod id; + +pub use id::*; diff --git a/rustmail/src/commands/logs/common.rs b/rustmail/src/commands/logs/common.rs index e431a1af..e86681ad 100644 --- a/rustmail/src/commands/logs/common.rs +++ b/rustmail/src/commands/logs/common.rs @@ -1,13 +1,13 @@ -use crate::config::Config; -use crate::errors::ModmailError; -use crate::i18n::get_translated_message; -use crate::types::logs::TicketLog; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::types::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, CommandInteraction, Message}; use serenity::builder::CreateActionRow; use serenity::client::Context; -pub fn extract_user_id(msg: &Message, config: &Config) -> String { +pub fn extract_user_id_for_logs(msg: &Message, config: &Config) -> String { let content = msg.content.trim(); let prefix = &config.command.prefix; let command_name = "logs"; diff --git a/rustmail/src/commands/logs/mod.rs b/rustmail/src/commands/logs/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/logs/mod.rs +++ b/rustmail/src/commands/logs/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/logs/slash_command/logs.rs b/rustmail/src/commands/logs/slash_command/logs.rs index beea1613..efe23e4e 100644 --- a/rustmail/src/commands/logs/slash_command/logs.rs +++ b/rustmail/src/commands/logs/slash_command/logs.rs @@ -1,10 +1,9 @@ -use crate::commands::logs::text_command::logs::{handle_logs_from_user_id, handle_logs_in_thread}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::errors::{DatabaseError, ModmailError, ModmailResult}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, diff --git a/rustmail/src/commands/logs/slash_command/mod.rs b/rustmail/src/commands/logs/slash_command/mod.rs index af2c2c34..da94856a 100644 --- a/rustmail/src/commands/logs/slash_command/mod.rs +++ b/rustmail/src/commands/logs/slash_command/mod.rs @@ -1 +1,3 @@ pub mod logs; + +pub use logs::*; diff --git a/rustmail/src/commands/logs/text_command/logs.rs b/rustmail/src/commands/logs/text_command/logs.rs index af875901..be912d58 100644 --- a/rustmail/src/commands/logs/text_command/logs.rs +++ b/rustmail/src/commands/logs/text_command/logs.rs @@ -1,13 +1,12 @@ -use crate::commands::logs::common::{extract_user_id, get_response, render_logs_page}; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::logs::get_logs_from_user_id; -use crate::errors::{DatabaseError, ModmailError, ModmailResult, ThreadError}; -use crate::features::make_buttons; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::i18n::get_translated_message; -use crate::modules::commands::LOGS_PAGE_SIZE; -use crate::types::logs::{PaginationContext, PaginationStore}; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::features::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::modules::*; +use crate::prelude::types::*; use serenity::all::{ButtonStyle, ChannelId, CommandInteraction, Context, Message}; use sqlx::SqlitePool; use std::sync::Arc; @@ -116,7 +115,7 @@ pub async fn logs( None => return Err(ModmailError::Database(DatabaseError::ConnectionFailed)), }; - let user_id = extract_user_id(&msg, &config); + let user_id = extract_user_id_for_logs(&msg, &config); if user_id.is_empty() { handle_logs_in_thread( diff --git a/rustmail/src/commands/logs/text_command/mod.rs b/rustmail/src/commands/logs/text_command/mod.rs index af2c2c34..da94856a 100644 --- a/rustmail/src/commands/logs/text_command/mod.rs +++ b/rustmail/src/commands/logs/text_command/mod.rs @@ -1 +1,3 @@ pub mod logs; + +pub use logs::*; diff --git a/rustmail/src/commands/mod.rs b/rustmail/src/commands/mod.rs index b3b35454..273a77e3 100644 --- a/rustmail/src/commands/mod.rs +++ b/rustmail/src/commands/mod.rs @@ -1,7 +1,7 @@ -use crate::config::Config; -use crate::errors::ModmailResult; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::types::logs::PaginationStore; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::types::*; use serenity::all::{CommandInteraction, Context, CreateCommand, ResolvedOption}; use std::any::Any; use std::collections::HashMap; @@ -29,6 +29,26 @@ pub mod remove_staff; pub mod reply; pub mod take; +pub use add_reminder::*; +pub use add_staff::*; +pub use alert::*; +pub use anonreply::*; +pub use close::*; +pub use delete::*; +pub use edit::*; +pub use force_close::*; +pub use help::*; +pub use id::*; +pub use logs::*; +pub use move_thread::*; +pub use new_thread::*; +pub use recover::*; +pub use release::*; +pub use remove_reminder::*; +pub use remove_staff::*; +pub use reply::*; +pub use take::*; + pub type BoxFuture<'a, T> = Pin + Send + 'a>>; pub trait RegistrableCommand: Any + Send + Sync { diff --git a/rustmail/src/commands/move_thread/common.rs b/rustmail/src/commands/move_thread/common.rs index fa7f4b8b..683ec46b 100644 --- a/rustmail/src/commands/move_thread/common.rs +++ b/rustmail/src/commands/move_thread/common.rs @@ -1,7 +1,7 @@ -use crate::config::Config; -use crate::db::get_user_id_from_channel_id; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, CommandInteraction, Context, EditChannel, GuildId, Message}; use std::collections::HashMap; @@ -66,35 +66,6 @@ pub async fn move_channel_to_category_by_command_option( .await } -pub async fn send_success_message( - ctx: &Context, - msg: &Message, - config: &Config, - category_name: &str, -) { - let mut params = HashMap::new(); - params.insert("category".to_string(), category_name.to_string()); - params.insert("staff".to_string(), msg.author.name.clone()); - - let confirmation_msg = get_translated_message( - config, - "move_thread.success", - Some(¶ms), - Some(msg.author.id), - msg.guild_id.map(|g| g.get()), - None, - ) - .await; - - let _ = MessageBuilder::system_message(ctx, config) - .content(confirmation_msg) - .to_channel(msg.channel_id) - .send(true) - .await; - - let _ = msg.delete(&ctx.http).await; -} - pub fn find_best_match_category( target_name: &str, categories: &[(ChannelId, String)], diff --git a/rustmail/src/commands/move_thread/mod.rs b/rustmail/src/commands/move_thread/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/move_thread/mod.rs +++ b/rustmail/src/commands/move_thread/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/move_thread/slash_command/mod.rs b/rustmail/src/commands/move_thread/slash_command/mod.rs index ae16a430..7a8a59e9 100644 --- a/rustmail/src/commands/move_thread/slash_command/mod.rs +++ b/rustmail/src/commands/move_thread/slash_command/mod.rs @@ -1 +1,3 @@ pub mod move_thread; + +pub use move_thread::*; diff --git a/rustmail/src/commands/move_thread/slash_command/move_thread.rs b/rustmail/src/commands/move_thread/slash_command/move_thread.rs index 43098391..6e090447 100644 --- a/rustmail/src/commands/move_thread/slash_command/move_thread.rs +++ b/rustmail/src/commands/move_thread/slash_command/move_thread.rs @@ -1,16 +1,10 @@ -use crate::commands::move_thread::common::{ - fetch_server_categories, find_best_match_category, move_channel_to_category_by_command_option, -}; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::get_user_id_from_channel_id; -use crate::errors::{ - CommandError, DatabaseError, DiscordError, ModmailError, ModmailResult, ThreadError, -}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, diff --git a/rustmail/src/commands/move_thread/text_command/mod.rs b/rustmail/src/commands/move_thread/text_command/mod.rs index ae16a430..7a8a59e9 100644 --- a/rustmail/src/commands/move_thread/text_command/mod.rs +++ b/rustmail/src/commands/move_thread/text_command/mod.rs @@ -1 +1,3 @@ pub mod move_thread; + +pub use move_thread::*; diff --git a/rustmail/src/commands/move_thread/text_command/move_thread.rs b/rustmail/src/commands/move_thread/text_command/move_thread.rs index 6811c0a5..3369960f 100644 --- a/rustmail/src/commands/move_thread/text_command/move_thread.rs +++ b/rustmail/src/commands/move_thread/text_command/move_thread.rs @@ -1,13 +1,11 @@ -use crate::commands::move_thread::common::{ - extract_category_name, fetch_server_categories, find_best_match_category, is_in_thread, - move_channel_to_category_by_msg, send_success_message, -}; -use crate::config::Config; -use crate::errors::CommandError::NotInThread; -use crate::errors::ThreadError::CategoryNotFound; -use crate::errors::{CommandError, DiscordError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message}; +use std::collections::HashMap; use std::sync::Arc; pub async fn move_thread( @@ -19,15 +17,15 @@ pub async fn move_thread( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; if !is_in_thread(&msg, pool).await { - return Err(ModmailError::Command(NotInThread())); + return Err(ModmailError::Command(CommandError::NotInThread())); } let category_name = extract_category_name(&msg, config).await; if category_name.is_empty() { - return Err(ModmailError::Thread(CategoryNotFound)); + return Err(ModmailError::Thread(ThreadError::CategoryNotFound)); } let categories = fetch_server_categories(&ctx, config).await; @@ -45,10 +43,30 @@ pub async fn move_thread( ))); } - send_success_message(&ctx, &msg, config, &category_name).await; + let mut params = HashMap::new(); + params.insert("category".to_string(), category_name.to_string()); + params.insert("staff".to_string(), msg.author.name.clone()); + + let confirmation_msg = get_translated_message( + config, + "move_thread.success", + Some(¶ms), + Some(msg.author.id), + msg.guild_id.map(|g| g.get()), + None, + ) + .await; + + let _ = MessageBuilder::system_message(&ctx.clone(), config) + .content(confirmation_msg) + .to_channel(msg.channel_id) + .send(true) + .await; + + let _ = msg.delete(&ctx.http).await; } None => { - return Err(ModmailError::Thread(CategoryNotFound)); + return Err(ModmailError::Thread(ThreadError::CategoryNotFound)); } } diff --git a/rustmail/src/commands/new_thread/common.rs b/rustmail/src/commands/new_thread/common.rs index 3549f08a..d0f5978b 100644 --- a/rustmail/src/commands/new_thread/common.rs +++ b/rustmail/src/commands/new_thread/common.rs @@ -1,6 +1,6 @@ -use crate::config::Config; -use crate::errors::ModmailResult; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::{Context, GuildChannel, Message, User, UserId}; use std::collections::HashMap; diff --git a/rustmail/src/commands/new_thread/mod.rs b/rustmail/src/commands/new_thread/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/new_thread/mod.rs +++ b/rustmail/src/commands/new_thread/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/new_thread/slash_command/mod.rs b/rustmail/src/commands/new_thread/slash_command/mod.rs index f286241d..e92a3fcd 100644 --- a/rustmail/src/commands/new_thread/slash_command/mod.rs +++ b/rustmail/src/commands/new_thread/slash_command/mod.rs @@ -1 +1,3 @@ pub mod new_thread; + +pub use new_thread::*; diff --git a/rustmail/src/commands/new_thread/slash_command/new_thread.rs b/rustmail/src/commands/new_thread/slash_command/new_thread.rs index b6132d2a..64fc05c2 100644 --- a/rustmail/src/commands/new_thread/slash_command/new_thread.rs +++ b/rustmail/src/commands/new_thread/slash_command/new_thread.rs @@ -1,17 +1,10 @@ -use crate::commands::new_thread::common::send_welcome_message; -use crate::commands::{BoxFuture, CommunityRegistrable, RegistrableCommand}; -use crate::config::Config; -use crate::db::logs::get_logs_from_user_id; -use crate::db::{create_thread_for_user, get_thread_channel_by_user_id, thread_exists}; -use crate::errors::{ - CommandError, DatabaseError, DiscordError, ModmailError, ModmailResult, common, -}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::thread::user_recap::get_user_recap; -use crate::utils::time::get_member_join_date::get_member_join_date_for_user; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ ChannelId, CommandDataOptionValue, CommandInteraction, CommandOptionType, CommandType, Context, @@ -90,7 +83,7 @@ impl RegistrableCommand for NewThreadCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; diff --git a/rustmail/src/commands/new_thread/text_command/mod.rs b/rustmail/src/commands/new_thread/text_command/mod.rs index f286241d..e92a3fcd 100644 --- a/rustmail/src/commands/new_thread/text_command/mod.rs +++ b/rustmail/src/commands/new_thread/text_command/mod.rs @@ -1 +1,3 @@ pub mod new_thread; + +pub use new_thread::*; diff --git a/rustmail/src/commands/new_thread/text_command/new_thread.rs b/rustmail/src/commands/new_thread/text_command/new_thread.rs index 1e86e78d..cb7b79ba 100644 --- a/rustmail/src/commands/new_thread/text_command/new_thread.rs +++ b/rustmail/src/commands/new_thread/text_command/new_thread.rs @@ -1,16 +1,10 @@ -use crate::commands::new_thread::common::{ - extract_user_id, send_dm_to_user, send_error_message, send_success_message, - send_welcome_message, -}; -use crate::config::Config; -use crate::db::logs::get_logs_from_user_id; -use crate::db::{create_thread_for_user, get_thread_channel_by_user_id, thread_exists}; -use crate::errors::{DiscordError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::thread::user_recap::get_user_recap; -use crate::utils::time::get_member_join_date::get_member_join_date_for_user; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, Context, GuildId, Message}; use std::collections::HashMap; use std::sync::Arc; @@ -24,7 +18,7 @@ pub async fn new_thread( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let user_id = extract_user_id(&msg, config).await; if user_id.is_none() { diff --git a/rustmail/src/commands/recover/mod.rs b/rustmail/src/commands/recover/mod.rs index 571237c8..b8524198 100644 --- a/rustmail/src/commands/recover/mod.rs +++ b/rustmail/src/commands/recover/mod.rs @@ -1,2 +1,5 @@ pub mod slash_command; pub mod text_command; + +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/recover/slash_command/mod.rs b/rustmail/src/commands/recover/slash_command/mod.rs index 583fc1ce..c5032b79 100644 --- a/rustmail/src/commands/recover/slash_command/mod.rs +++ b/rustmail/src/commands/recover/slash_command/mod.rs @@ -1 +1,3 @@ pub mod recover; + +pub use recover::*; diff --git a/rustmail/src/commands/recover/slash_command/recover.rs b/rustmail/src/commands/recover/slash_command/recover.rs index 5435de25..08e9abd2 100644 --- a/rustmail/src/commands/recover/slash_command/recover.rs +++ b/rustmail/src/commands/recover/slash_command/recover.rs @@ -1,11 +1,10 @@ -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::modules::message_recovery::recover_missing_messages; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::modules::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{CommandInteraction, Context, CreateCommand, ResolvedOption}; use std::collections::HashMap; @@ -58,7 +57,7 @@ impl RegistrableCommand for RecoverCommand { let _ = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; diff --git a/rustmail/src/commands/recover/text_command/mod.rs b/rustmail/src/commands/recover/text_command/mod.rs index 583fc1ce..c5032b79 100644 --- a/rustmail/src/commands/recover/text_command/mod.rs +++ b/rustmail/src/commands/recover/text_command/mod.rs @@ -1 +1,3 @@ pub mod recover; + +pub use recover::*; diff --git a/rustmail/src/commands/recover/text_command/recover.rs b/rustmail/src/commands/recover/text_command/recover.rs index 54e2dac1..12f7fbce 100644 --- a/rustmail/src/commands/recover/text_command/recover.rs +++ b/rustmail/src/commands/recover/text_command/recover.rs @@ -1,9 +1,9 @@ -use crate::config::Config; -use crate::errors::{ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::i18n::get_translated_message; -use crate::modules::message_recovery::recover_missing_messages; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::modules::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message}; use std::collections::HashMap; use std::sync::Arc; @@ -17,7 +17,7 @@ pub async fn recover( let _ = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let mut params = HashMap::new(); params.insert("user".to_string(), msg.author.name.clone()); diff --git a/rustmail/src/commands/release/mod.rs b/rustmail/src/commands/release/mod.rs index 571237c8..b8524198 100644 --- a/rustmail/src/commands/release/mod.rs +++ b/rustmail/src/commands/release/mod.rs @@ -1,2 +1,5 @@ pub mod slash_command; pub mod text_command; + +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/release/slash_command/mod.rs b/rustmail/src/commands/release/slash_command/mod.rs index f35143aa..84bceb56 100644 --- a/rustmail/src/commands/release/slash_command/mod.rs +++ b/rustmail/src/commands/release/slash_command/mod.rs @@ -1 +1,3 @@ pub mod release; + +pub use release::*; diff --git a/rustmail/src/commands/release/slash_command/release.rs b/rustmail/src/commands/release/slash_command/release.rs index c61ab272..9ac0bb89 100644 --- a/rustmail/src/commands/release/slash_command/release.rs +++ b/rustmail/src/commands/release/slash_command/release.rs @@ -1,15 +1,10 @@ -use crate::commands::take::common::rename_channel_with_timeout; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::common::{database_connection_failed, thread_not_found}; -use crate::errors::{CommandError, ModmailError, ModmailResult}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ChannelId, CommandInteraction, Context, CreateCommand, ResolvedOption}; use std::sync::Arc; @@ -113,7 +108,7 @@ impl RegistrableCommand for ReleaseCommand { Ok(()) } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } }) } diff --git a/rustmail/src/commands/release/text_command/mod.rs b/rustmail/src/commands/release/text_command/mod.rs index f35143aa..84bceb56 100644 --- a/rustmail/src/commands/release/text_command/mod.rs +++ b/rustmail/src/commands/release/text_command/mod.rs @@ -1 +1,3 @@ pub mod release; + +pub use release::*; diff --git a/rustmail/src/commands/release/text_command/release.rs b/rustmail/src/commands/release/text_command/release.rs index 05b1b517..0a6d5c24 100644 --- a/rustmail/src/commands/release/text_command/release.rs +++ b/rustmail/src/commands/release/text_command/release.rs @@ -1,12 +1,9 @@ -use crate::commands::take::common::rename_channel_with_timeout; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::common::{database_connection_failed, thread_not_found}; -use crate::errors::{CommandError, ModmailError, ModmailResult}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, Context, Message}; use std::sync::Arc; @@ -62,6 +59,6 @@ pub async fn release( Ok(()) } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } } diff --git a/rustmail/src/commands/remove_reminder/mod.rs b/rustmail/src/commands/remove_reminder/mod.rs index 571237c8..b8524198 100644 --- a/rustmail/src/commands/remove_reminder/mod.rs +++ b/rustmail/src/commands/remove_reminder/mod.rs @@ -1,2 +1,5 @@ pub mod slash_command; pub mod text_command; + +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/remove_reminder/slash_command/mod.rs b/rustmail/src/commands/remove_reminder/slash_command/mod.rs index 1d8a3aad..a2db9f4e 100644 --- a/rustmail/src/commands/remove_reminder/slash_command/mod.rs +++ b/rustmail/src/commands/remove_reminder/slash_command/mod.rs @@ -1 +1,3 @@ pub mod remove_reminder; + +pub use remove_reminder::*; diff --git a/rustmail/src/commands/remove_reminder/slash_command/remove_reminder.rs b/rustmail/src/commands/remove_reminder/slash_command/remove_reminder.rs index 9d83f2a4..681c4ff1 100644 --- a/rustmail/src/commands/remove_reminder/slash_command/remove_reminder.rs +++ b/rustmail/src/commands/remove_reminder/slash_command/remove_reminder.rs @@ -1,11 +1,10 @@ -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::reminders::{get_reminder_by_id, update_reminder_status}; -use crate::errors::{CommandError, DatabaseError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, CreateCommand, @@ -74,7 +73,7 @@ impl RegistrableCommand for RemoveReminderCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let _ = defer_response(&ctx, &command).await; diff --git a/rustmail/src/commands/remove_reminder/text_command/mod.rs b/rustmail/src/commands/remove_reminder/text_command/mod.rs index 1d8a3aad..a2db9f4e 100644 --- a/rustmail/src/commands/remove_reminder/text_command/mod.rs +++ b/rustmail/src/commands/remove_reminder/text_command/mod.rs @@ -1 +1,3 @@ pub mod remove_reminder; + +pub use remove_reminder::*; diff --git a/rustmail/src/commands/remove_reminder/text_command/remove_reminder.rs b/rustmail/src/commands/remove_reminder/text_command/remove_reminder.rs index 98915a13..26a0c0fa 100644 --- a/rustmail/src/commands/remove_reminder/text_command/remove_reminder.rs +++ b/rustmail/src/commands/remove_reminder/text_command/remove_reminder.rs @@ -1,9 +1,8 @@ -use crate::config::Config; -use crate::db::reminders::{get_reminder_by_id, update_reminder_status}; -use crate::errors::{CommandError, DatabaseError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::command::extract_reply_content::extract_reply_content; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message}; use std::collections::HashMap; use std::sync::Arc; @@ -17,7 +16,7 @@ pub async fn remove_reminder( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let content = match extract_reply_content(&msg.content, &config.command.prefix, &["unremind", "urem"]) { diff --git a/rustmail/src/commands/remove_staff/common.rs b/rustmail/src/commands/remove_staff/common.rs index f2803346..c7bdbdc6 100644 --- a/rustmail/src/commands/remove_staff/common.rs +++ b/rustmail/src/commands/remove_staff/common.rs @@ -1,5 +1,5 @@ -use crate::config::Config; -use crate::errors::ModmailResult; +use crate::prelude::config::*; +use crate::prelude::errors::*; use serenity::all::{ ChannelId, Context, Message, PermissionOverwrite, PermissionOverwriteType, Permissions, UserId, }; @@ -25,7 +25,7 @@ pub async fn remove_user_from_channel( Ok(()) } -pub async fn extract_user_id(msg: &Message, config: &Config) -> String { +pub async fn extract_remove_staff_id(msg: &Message, config: &Config) -> String { let content = msg.content.trim(); let prefix = &config.command.prefix; let command_names = ["delmod", "dm"]; diff --git a/rustmail/src/commands/remove_staff/mod.rs b/rustmail/src/commands/remove_staff/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/remove_staff/mod.rs +++ b/rustmail/src/commands/remove_staff/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/remove_staff/slash_command/mod.rs b/rustmail/src/commands/remove_staff/slash_command/mod.rs index b7292497..d94ee3b8 100644 --- a/rustmail/src/commands/remove_staff/slash_command/mod.rs +++ b/rustmail/src/commands/remove_staff/slash_command/mod.rs @@ -1 +1,3 @@ pub mod remove_staff; + +pub use remove_staff::*; diff --git a/rustmail/src/commands/remove_staff/slash_command/remove_staff.rs b/rustmail/src/commands/remove_staff/slash_command/remove_staff.rs index b1b6b23e..4b5fcdc1 100644 --- a/rustmail/src/commands/remove_staff/slash_command/remove_staff.rs +++ b/rustmail/src/commands/remove_staff/slash_command/remove_staff.rs @@ -1,14 +1,10 @@ -use crate::commands::remove_staff::common::remove_user_from_channel; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::thread_exists; -use crate::errors::CommandError::InvalidFormat; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::{CommandError, ModmailError, ModmailResult, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ CommandDataOptionValue, CommandInteraction, CommandOptionType, CommandType, Context, @@ -82,7 +78,7 @@ impl RegistrableCommand for RemoveStaffCommand { let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; @@ -138,10 +134,10 @@ impl RegistrableCommand for RemoveStaffCommand { Ok(()) } - Err(..) => Err(ModmailError::Command(InvalidFormat)), + Err(..) => Err(ModmailError::Command(CommandError::InvalidFormat)), } } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } }) } diff --git a/rustmail/src/commands/remove_staff/text_command/mod.rs b/rustmail/src/commands/remove_staff/text_command/mod.rs index b7292497..d94ee3b8 100644 --- a/rustmail/src/commands/remove_staff/text_command/mod.rs +++ b/rustmail/src/commands/remove_staff/text_command/mod.rs @@ -1 +1,3 @@ pub mod remove_staff; + +pub use remove_staff::*; diff --git a/rustmail/src/commands/remove_staff/text_command/remove_staff.rs b/rustmail/src/commands/remove_staff/text_command/remove_staff.rs index b46d68a2..2a2f146e 100644 --- a/rustmail/src/commands/remove_staff/text_command/remove_staff.rs +++ b/rustmail/src/commands/remove_staff/text_command/remove_staff.rs @@ -1,11 +1,9 @@ -use crate::commands::remove_staff::common::{extract_user_id, remove_user_from_channel}; -use crate::config::Config; -use crate::db::thread_exists; -use crate::errors::CommandError::InvalidFormat; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::{ModmailError, ModmailResult, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, Message, UserId}; use std::collections::HashMap; use std::sync::Arc; @@ -19,17 +17,17 @@ pub async fn remove_staff( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; - let user_id_str = extract_user_id(&msg, config).await; + let user_id_str = extract_remove_staff_id(&msg, config).await; if user_id_str.is_empty() { - return Err(ModmailError::Command(InvalidFormat)); + return Err(ModmailError::Command(CommandError::InvalidFormat)); } let user_id = match user_id_str.parse::() { Ok(id) => UserId::new(id), - Err(_) => return Err(ModmailError::Command(InvalidFormat)), + Err(_) => return Err(ModmailError::Command(CommandError::InvalidFormat)), }; if thread_exists(msg.author.id, pool).await { @@ -47,9 +45,9 @@ pub async fn remove_staff( Ok(()) } - Err(..) => Err(ModmailError::Command(InvalidFormat)), + Err(..) => Err(ModmailError::Command(CommandError::InvalidFormat)), } } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } } diff --git a/rustmail/src/commands/reply/mod.rs b/rustmail/src/commands/reply/mod.rs index 571237c8..b8524198 100644 --- a/rustmail/src/commands/reply/mod.rs +++ b/rustmail/src/commands/reply/mod.rs @@ -1,2 +1,5 @@ pub mod slash_command; pub mod text_command; + +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/reply/slash_command/mod.rs b/rustmail/src/commands/reply/slash_command/mod.rs index 1b2be173..b0525521 100644 --- a/rustmail/src/commands/reply/slash_command/mod.rs +++ b/rustmail/src/commands/reply/slash_command/mod.rs @@ -1 +1,3 @@ pub mod reply; + +pub use reply::*; diff --git a/rustmail/src/commands/reply/slash_command/reply.rs b/rustmail/src/commands/reply/slash_command/reply.rs index e7de5ab4..237a2ae1 100644 --- a/rustmail/src/commands/reply/slash_command/reply.rs +++ b/rustmail/src/commands/reply/slash_command/reply.rs @@ -1,14 +1,10 @@ -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::allocate_next_message_number; -use crate::errors::MessageError::MessageEmpty; -use crate::errors::{CommandError, ModmailError, ModmailResult, ThreadError, common}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::message::reply_intent::{ReplyIntent, extract_intent}; -use crate::utils::thread::fetch_thread::fetch_thread; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ Attachment, CommandDataOptionValue, CommandInteraction, CommandOptionType, Context, @@ -115,7 +111,7 @@ impl RegistrableCommand for ReplyCommand { let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; defer_response(&ctx, &command).await?; @@ -143,7 +139,7 @@ impl RegistrableCommand for ReplyCommand { let intent = extract_intent(content, &attachments).await; let Some(intent) = intent else { - return Err(ModmailError::Message(MessageEmpty)); + return Err(ModmailError::Message(MessageError::MessageEmpty)); }; let thread = fetch_thread(db_pool, &command.channel_id.to_string()).await?; @@ -157,7 +153,7 @@ impl RegistrableCommand for ReplyCommand { let next_message_number = allocate_next_message_number(&thread.id, db_pool) .await - .map_err(|_| common::validation_failed("Failed to allocate message number"))?; + .map_err(|_| validation_failed("Failed to allocate message number"))?; let mut sr = MessageBuilder::begin_staff_reply( &ctx, @@ -186,7 +182,7 @@ impl RegistrableCommand for ReplyCommand { let (_, dm_msg_opt) = match sr.send_command_and_record(&command, db_pool).await { Ok(tuple) => tuple, Err(_) => { - return Err(common::validation_failed("Failed to send to thread")); + return Err(validation_failed("Failed to send to thread")); } }; diff --git a/rustmail/src/commands/reply/text_command/mod.rs b/rustmail/src/commands/reply/text_command/mod.rs index 1b2be173..b0525521 100644 --- a/rustmail/src/commands/reply/text_command/mod.rs +++ b/rustmail/src/commands/reply/text_command/mod.rs @@ -1 +1,3 @@ pub mod reply; + +pub use reply::*; diff --git a/rustmail/src/commands/reply/text_command/reply.rs b/rustmail/src/commands/reply/text_command/reply.rs index d36e2fa1..efdf3d9e 100644 --- a/rustmail/src/commands/reply/text_command/reply.rs +++ b/rustmail/src/commands/reply/text_command/reply.rs @@ -1,12 +1,8 @@ -use crate::config::Config; -use crate::db::allocate_next_message_number; -use crate::errors::MessageError::MessageEmpty; -use crate::errors::{CommandError, ModmailError, ModmailResult, ThreadError, common}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::command::extract_reply_content::extract_reply_content; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::message::reply_intent::{ReplyIntent, extract_intent}; -use crate::utils::thread::fetch_thread::fetch_thread; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{Context, GuildId, Message, UserId}; use std::collections::HashMap; use std::sync::Arc; @@ -20,13 +16,13 @@ pub async fn reply( let db_pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let content = extract_reply_content(&msg.content, &config.command.prefix, &["reply", "r"]); let intent = extract_intent(content, &msg.attachments).await; let Some(intent) = intent else { - return Err(ModmailError::Message(MessageEmpty)); + return Err(ModmailError::Message(MessageError::MessageEmpty)); }; let thread = fetch_thread(db_pool, &msg.channel_id.to_string()).await?; @@ -40,7 +36,7 @@ pub async fn reply( let next_message_number = allocate_next_message_number(&thread.id, db_pool) .await - .map_err(|_| common::validation_failed("Failed to allocate message number"))?; + .map_err(|_| validation_failed("Failed to allocate message number"))?; let _ = msg.delete(&ctx.http).await; @@ -70,7 +66,7 @@ pub async fn reply( let (_, dm_msg_opt) = match sr.send_msg_and_record(db_pool).await { Ok(tuple) => tuple, Err(_) => { - return Err(common::validation_failed("Failed to send to thread")); + return Err(validation_failed("Failed to send to thread")); } }; diff --git a/rustmail/src/commands/take/common.rs b/rustmail/src/commands/take/common.rs index d9bdbd90..7a0e6884 100644 --- a/rustmail/src/commands/take/common.rs +++ b/rustmail/src/commands/take/common.rs @@ -1,6 +1,6 @@ -use crate::config::Config; -use crate::errors::{DiscordError, ModmailError, ModmailResult}; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::errors::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, CommandInteraction, Context, EditChannel, Message}; use std::time::Duration; use tokio::time::sleep; diff --git a/rustmail/src/commands/take/mod.rs b/rustmail/src/commands/take/mod.rs index de6da7af..e08ac479 100644 --- a/rustmail/src/commands/take/mod.rs +++ b/rustmail/src/commands/take/mod.rs @@ -1,3 +1,7 @@ pub mod common; pub mod slash_command; pub mod text_command; + +pub use common::*; +pub use slash_command::*; +pub use text_command::*; diff --git a/rustmail/src/commands/take/slash_command/mod.rs b/rustmail/src/commands/take/slash_command/mod.rs index f1cf2575..f7094af2 100644 --- a/rustmail/src/commands/take/slash_command/mod.rs +++ b/rustmail/src/commands/take/slash_command/mod.rs @@ -1 +1,3 @@ pub mod take; + +pub use take::*; diff --git a/rustmail/src/commands/take/slash_command/take.rs b/rustmail/src/commands/take/slash_command/take.rs index a919d924..7f0bc3c4 100644 --- a/rustmail/src/commands/take/slash_command/take.rs +++ b/rustmail/src/commands/take/slash_command/take.rs @@ -1,15 +1,10 @@ -use crate::commands::take::common::rename_channel_with_timeout; -use crate::commands::{BoxFuture, RegistrableCommand}; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::common::{database_connection_failed, thread_not_found}; -use crate::errors::{CommandError, ModmailError, ModmailResult}; -use crate::handlers::guild_interaction_handler::InteractionHandler; -use crate::i18n::get_translated_message; -use crate::utils::command::defer_response::defer_response; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::FutureExt; use serenity::all::{ChannelId, CommandInteraction, Context, CreateCommand, ResolvedOption}; use std::sync::Arc; @@ -113,7 +108,7 @@ impl RegistrableCommand for TakeCommand { Ok(()) } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } }) } diff --git a/rustmail/src/commands/take/text_command/mod.rs b/rustmail/src/commands/take/text_command/mod.rs index f1cf2575..f7094af2 100644 --- a/rustmail/src/commands/take/text_command/mod.rs +++ b/rustmail/src/commands/take/text_command/mod.rs @@ -1 +1,3 @@ pub mod take; + +pub use take::*; diff --git a/rustmail/src/commands/take/text_command/take.rs b/rustmail/src/commands/take/text_command/take.rs index c16d3243..a58b21dc 100644 --- a/rustmail/src/commands/take/text_command/take.rs +++ b/rustmail/src/commands/take/text_command/take.rs @@ -1,12 +1,9 @@ -use crate::commands::take::common::rename_channel_with_timeout; -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::threads::is_a_ticket_channel; -use crate::errors::ThreadError::NotAThreadChannel; -use crate::errors::common::{database_connection_failed, thread_not_found}; -use crate::errors::{CommandError, ModmailError, ModmailResult}; -use crate::handlers::guild_messages_handler::GuildMessagesHandler; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::handlers::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, Context, Message}; use std::sync::Arc; @@ -62,6 +59,6 @@ pub async fn take( Ok(()) } else { - Err(ModmailError::Thread(NotAThreadChannel)) + Err(ModmailError::Thread(ThreadError::NotAThreadChannel)) } } diff --git a/rustmail/src/config.rs b/rustmail/src/config.rs index 403b1391..ffabe136 100644 --- a/rustmail/src/config.rs +++ b/rustmail/src/config.rs @@ -1,5 +1,5 @@ -use crate::errors::handler::ErrorHandler; -use crate::i18n::languages::Language; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; use chrono_tz::Tz; use serde::Deserialize; use serenity::all::GuildId; diff --git a/rustmail/src/db/mod.rs b/rustmail/src/db/mod.rs index af2d8add..7c14f81e 100644 --- a/rustmail/src/db/mod.rs +++ b/rustmail/src/db/mod.rs @@ -2,3 +2,4 @@ pub mod operations; pub mod repr; pub use operations::*; +pub use repr::*; diff --git a/rustmail/src/db/operations/logs.rs b/rustmail/src/db/operations/logs.rs index 412b4c3a..6bba2955 100644 --- a/rustmail/src/db/operations/logs.rs +++ b/rustmail/src/db/operations/logs.rs @@ -1,5 +1,5 @@ -use crate::errors::{DatabaseError, ModmailError, ModmailResult}; -use crate::types::logs::TicketLog; +use crate::prelude::errors::*; +use crate::prelude::types::*; use sqlx::SqlitePool; pub async fn get_logs_from_user_id( diff --git a/rustmail/src/db/operations/messages.rs b/rustmail/src/db/operations/messages.rs index 64b5774d..c6fe5b48 100644 --- a/rustmail/src/db/operations/messages.rs +++ b/rustmail/src/db/operations/messages.rs @@ -1,7 +1,6 @@ -use crate::config::Config; -use crate::db::operations::threads::get_user_name_from_thread_id; -use crate::errors::ModmailResult; -use crate::errors::common::message_not_found; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; use serenity::all::{Message, MessageId, UserId}; use serenity::client::Context; use sqlx::{Error, SqlitePool}; diff --git a/rustmail/src/db/operations/mod.rs b/rustmail/src/db/operations/mod.rs index ee642120..bd4d2d8c 100644 --- a/rustmail/src/db/operations/mod.rs +++ b/rustmail/src/db/operations/mod.rs @@ -6,20 +6,10 @@ pub mod reminders; pub mod scheduled; pub mod threads; -pub use features::{get_feature_message, upsert_feature_message}; -pub use init::{get_last_recovery_timestamp, init_database, update_last_recovery_timestamp}; -pub use messages::{ - delete_message, get_latest_thread_message, get_message_ids_by_message_id, - get_message_ids_by_number, get_thread_message_by_inbox_message_id, insert_staff_message, - insert_user_message_with_ids, update_message_content, update_message_numbers_after_deletion, -}; -pub use scheduled::{ - delete_scheduled_closure, get_all_scheduled_closures, get_scheduled_closure, - upsert_scheduled_closure, -}; -pub use threads::{ - allocate_next_message_number, cancel_alert_for_staff, close_thread, create_thread_for_user, - get_all_opened_threads, get_staff_alerts_for_user, get_thread_by_channel_id, get_thread_by_id, - get_thread_channel_by_user_id, get_thread_id_by_user_id, get_user_id_from_channel_id, - is_user_left, mark_alert_as_used, set_alert_for_staff, thread_exists, update_thread_user_left, -}; +pub use features::*; +pub use init::*; +pub use logs::*; +pub use messages::*; +pub use reminders::*; +pub use scheduled::*; +pub use threads::*; diff --git a/rustmail/src/db/operations/reminders.rs b/rustmail/src/db/operations/reminders.rs index dc3cebfe..b6ee4722 100644 --- a/rustmail/src/db/operations/reminders.rs +++ b/rustmail/src/db/operations/reminders.rs @@ -1,7 +1,4 @@ -use crate::errors::CommandError::ReminderAlreadyExists; -use crate::errors::{ModmailError, ModmailResult}; -use sqlx::Error::Database; -use sqlx::error::ErrorKind::UniqueViolation; +use crate::prelude::errors::*; #[derive(Debug, Clone)] pub struct Reminder { @@ -33,7 +30,7 @@ pub async fn insert_reminder(reminder: &Reminder, pool: &sqlx::SqlitePool) -> Mo .await?; if let Some(_existging_id) = existing { - return Err(ModmailError::Command(ReminderAlreadyExists)); + return Err(ModmailError::Command(CommandError::ReminderAlreadyExists)); } let result = sqlx::query!( diff --git a/rustmail/src/db/operations/scheduled.rs b/rustmail/src/db/operations/scheduled.rs index 6fa75755..057202d9 100644 --- a/rustmail/src/db/operations/scheduled.rs +++ b/rustmail/src/db/operations/scheduled.rs @@ -1,4 +1,4 @@ -use crate::errors::{ModmailResult, common}; +use crate::prelude::errors::*; use sqlx::{Row, SqlitePool}; #[derive(Debug, Clone)] diff --git a/rustmail/src/db/operations/threads.rs b/rustmail/src/db/operations/threads.rs index 57fe88ed..aeafdf90 100644 --- a/rustmail/src/db/operations/threads.rs +++ b/rustmail/src/db/operations/threads.rs @@ -1,6 +1,5 @@ -use crate::db::repr::Thread; -use crate::errors::CommandError::AlertDoesNotExist; -use crate::errors::{DatabaseError, ModmailError, ModmailResult}; +use crate::prelude::db::*; +use crate::prelude::errors::*; use chrono::Utc; use serenity::all::{ChannelId, GuildChannel, UserId}; use sqlx::{Error, SqlitePool}; @@ -264,7 +263,7 @@ pub async fn cancel_alert_for_staff( .await?; if existing.is_none() { - return Err(ModmailError::Command(AlertDoesNotExist)); + return Err(ModmailError::Command(CommandError::AlertDoesNotExist)); } sqlx::query!( diff --git a/rustmail/src/errors/dictionary.rs b/rustmail/src/errors/dictionary.rs index 33e7ace1..54e42c5b 100644 --- a/rustmail/src/errors/dictionary.rs +++ b/rustmail/src/errors/dictionary.rs @@ -1,16 +1,5 @@ -use crate::errors::types::*; -use crate::i18n::language::cn::load_chinese_messages; -use crate::i18n::language::dt::load_dutch_messages; -use crate::i18n::language::en::load_english_messages; -use crate::i18n::language::fr::load_french_messages; -use crate::i18n::language::gr::load_german_messages; -use crate::i18n::language::it::load_italian_messages; -use crate::i18n::language::jp::load_japanese_messages; -use crate::i18n::language::kr::load_korean_messages; -use crate::i18n::language::pr::load_portuguese_messages; -use crate::i18n::language::ru::load_russian_messages; -use crate::i18n::language::sp::load_spanish_messages; -use crate::i18n::languages::Language; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; use serde::{Deserialize, Serialize}; use std::collections::HashMap; diff --git a/rustmail/src/errors/handler.rs b/rustmail/src/errors/handler.rs index 4f3c71b7..c2d46943 100644 --- a/rustmail/src/errors/handler.rs +++ b/rustmail/src/errors/handler.rs @@ -1,7 +1,5 @@ -use crate::errors::DiscordError; -use crate::errors::dictionary::DictionaryManager; -use crate::errors::types::{ModmailError, ModmailResult}; -use crate::i18n::languages::{Language, LanguageDetector, LanguagePreferences}; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; use serenity::all::{ ChannelId, Colour, CommandInteraction, Context, CreateEmbed, CreateInteractionResponseFollowup, CreateMessage, Message, UserId, diff --git a/rustmail/src/errors/mod.rs b/rustmail/src/errors/mod.rs index d6171898..d2ccd587 100644 --- a/rustmail/src/errors/mod.rs +++ b/rustmail/src/errors/mod.rs @@ -2,20 +2,16 @@ pub mod dictionary; pub mod handler; pub mod types; -pub use types::{ - CommandError, DatabaseError, DiscordError, MessageError, ModmailError, ModmailResult, - PermissionError, ThreadError, ValidationError, -}; - -pub use dictionary::{DictionaryMessage, ErrorDictionary}; - -pub use crate::{ - command_error, database_error, discord_error, message_error, permission_error, thread_error, - validation_error, -}; +pub use dictionary::*; +pub use handler::*; +pub use types::*; pub mod common { use super::*; + use crate::{ + command_error, database_error, discord_error, message_error, permission_error, + thread_error, validation_error, + }; pub fn not_found(entity: &str) -> ModmailError { database_error!(NotFound, entity) @@ -72,7 +68,7 @@ pub mod common { pub mod results { use super::*; - use crate::db::repr::Thread; + use crate::prelude::db::*; use serenity::all::{Channel, Message}; pub type DatabaseResult = Result; @@ -92,6 +88,7 @@ pub mod results { pub mod conversions { use super::*; + use crate::{database_error, discord_error}; pub fn from_serenity_with_context(err: serenity::Error, context: &str) -> ModmailError { match err { @@ -117,3 +114,7 @@ pub mod conversions { } } } + +pub use common::*; +pub use conversions::*; +pub use results::*; diff --git a/rustmail/src/errors/types.rs b/rustmail/src/errors/types.rs index 2d8e78aa..2ccca1d4 100644 --- a/rustmail/src/errors/types.rs +++ b/rustmail/src/errors/types.rs @@ -132,7 +132,7 @@ pub enum ValidationError { OutOfRange(String), TooShort(String), TooLong(String), - InvalidFormat(String), + InvalidValidationFormat(String), RequiredFieldMissing(String), InvalidCharacters(String), } @@ -306,7 +306,9 @@ impl fmt::Display for ValidationError { ValidationError::OutOfRange(range) => write!(f, "Out of range: {}", range), ValidationError::TooShort(field) => write!(f, "Too short: {}", field), ValidationError::TooLong(field) => write!(f, "Too long: {}", field), - ValidationError::InvalidFormat(format) => write!(f, "Invalid format: {}", format), + ValidationError::InvalidValidationFormat(format) => { + write!(f, "Invalid format: {}", format) + } ValidationError::RequiredFieldMissing(field) => { write!(f, "Required field missing: {}", field) } diff --git a/rustmail/src/features/mod.rs b/rustmail/src/features/mod.rs index 5654ade9..2d032201 100644 --- a/rustmail/src/features/mod.rs +++ b/rustmail/src/features/mod.rs @@ -1,14 +1,14 @@ -use crate::config::Config; -use crate::db::operations::{get_feature_message, upsert_feature_message}; +use crate::prelude::config::*; +use crate::prelude::db::*; use async_trait::async_trait; use serenity::all::ButtonStyle; use serenity::all::{ChannelId, ComponentInteraction, Context, CreateMessage}; use serenity::builder::{CreateActionRow, CreateButton}; use std::sync::Arc; -mod poll; +pub mod poll; -pub use poll::PollFeature; +pub use poll::*; #[async_trait] pub trait Feature<'a>: Send + Sync { diff --git a/rustmail/src/features/poll.rs b/rustmail/src/features/poll.rs index 4842a12a..151dd20e 100644 --- a/rustmail/src/features/poll.rs +++ b/rustmail/src/features/poll.rs @@ -1,6 +1,6 @@ -use super::{Feature, make_buttons}; -use crate::config::Config; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::features::*; +use crate::prelude::utils::*; use async_trait::async_trait; use serenity::all::{ ButtonStyle, ComponentInteraction, Context, CreateInteractionResponse, CreateMessage, diff --git a/rustmail/src/handlers/guild_handler.rs b/rustmail/src/handlers/guild_handler.rs index 3d84fe3e..3f735f8a 100644 --- a/rustmail/src/handlers/guild_handler.rs +++ b/rustmail/src/handlers/guild_handler.rs @@ -1,11 +1,6 @@ -use crate::config::Config; -use crate::db::close_thread; -use crate::db::operations::get_thread_by_channel_id; -use crate::db::threads::is_an_opened_ticket_channel; -use crate::utils::thread::category::{ - get_category_id_from_guild_channel, get_category_name_from_guild_channel, - get_required_permissions_channel_from_guild_channel, -}; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::utils::*; use async_trait::async_trait; use serenity::all::{Context, GuildChannel, Message}; use serenity::client::EventHandler; diff --git a/rustmail/src/handlers/guild_interaction_handler.rs b/rustmail/src/handlers/guild_interaction_handler.rs index 66489fc9..7f183e57 100644 --- a/rustmail/src/handlers/guild_interaction_handler.rs +++ b/rustmail/src/handlers/guild_interaction_handler.rs @@ -1,11 +1,8 @@ -use crate::commands::CommandRegistry; -use crate::config::Config; -use crate::features::handle_feature_component_interaction; -use crate::modules::commands::handle_command_component_interaction; -use crate::modules::threads::{ - handle_thread_component_interaction, handle_thread_modal_interaction, -}; -use crate::types::logs::PaginationStore; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::features::*; +use crate::prelude::modules::*; +use crate::prelude::types::*; use serenity::all::{Context, EventHandler, Interaction}; use std::sync::Arc; use tokio::sync::watch::Receiver; diff --git a/rustmail/src/handlers/guild_members_handler.rs b/rustmail/src/handlers/guild_members_handler.rs index 2c94d633..e4538dd2 100644 --- a/rustmail/src/handlers/guild_members_handler.rs +++ b/rustmail/src/handlers/guild_members_handler.rs @@ -1,10 +1,8 @@ -use crate::config::Config; -use crate::db::close_thread; -use crate::db::operations::update_thread_user_left; -use crate::db::threads::get_thread_by_user_id; -use crate::features::make_buttons; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::features::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ButtonStyle, Channel, Member, PermissionOverwriteType, RoleId}; use serenity::{ all::{Context, EventHandler, GuildId, User}, diff --git a/rustmail/src/handlers/guild_message_reactions_handler.rs b/rustmail/src/handlers/guild_message_reactions_handler.rs index 1711d419..969d229b 100644 --- a/rustmail/src/handlers/guild_message_reactions_handler.rs +++ b/rustmail/src/handlers/guild_message_reactions_handler.rs @@ -1,10 +1,6 @@ -use crate::config::Config; -use crate::db::operations::{ - get_message_ids_by_message_id, get_thread_channel_by_user_id, get_user_id_from_channel_id, -}; -use crate::errors::MessageError::{DmAccessFailed, MessageEmpty, MessageNotFound}; -use crate::errors::types::ConfigError::ParseError; -use crate::errors::{ModmailError, ModmailResult}; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; use serenity::all::{ChannelId, Context, EventHandler, MessageId, Reaction, UserId}; use serenity::async_trait; @@ -81,19 +77,20 @@ async fn handle_all_reaction_remove( channel_id: ChannelId, config: &Config, ) -> ModmailResult<()> { - let pool = config - .db_pool - .clone() - .ok_or_else(|| ModmailError::Config(ParseError("Database pool not available".into())))?; + let pool = config.db_pool.clone().ok_or_else(|| { + ModmailError::Config(ConfigError::ParseError( + "Database pool not available".into(), + )) + })?; let dm_message_id_str = match get_message_ids_by_message_id(&removed_from_message_id.to_string(), &pool).await { Some(ids) => match ids.dm_message_id { Some(id) => id, - None => return Err(ModmailError::Message(MessageEmpty)), + None => return Err(ModmailError::Message(MessageError::MessageEmpty)), }, None => { - return Err(ModmailError::Message(MessageNotFound( + return Err(ModmailError::Message(MessageError::MessageNotFound( removed_from_message_id.to_string(), ))); } @@ -101,7 +98,7 @@ async fn handle_all_reaction_remove( let dm_message_id_parsed = dm_message_id_str .parse::() - .map_err(|e| ModmailError::Message(MessageNotFound(e.to_string())))?; + .map_err(|e| ModmailError::Message(MessageError::MessageNotFound(e.to_string())))?; let user_id = match get_user_id_from_channel_id(&channel_id.to_string(), &pool).await { Some(id) if id > 0 => id as u64, @@ -111,12 +108,12 @@ async fn handle_all_reaction_remove( let dm_channel = UserId::new(user_id) .create_dm_channel(&ctx.http) .await - .map_err(|e| ModmailError::Message(DmAccessFailed(e.to_string())))?; + .map_err(|e| ModmailError::Message(MessageError::DmAccessFailed(e.to_string())))?; let dm_message = dm_channel .message(&ctx.http, dm_message_id_parsed) .await - .map_err(|e| ModmailError::Message(DmAccessFailed(e.to_string())))?; + .map_err(|e| ModmailError::Message(MessageError::DmAccessFailed(e.to_string())))?; let bot_user_id = Some(ctx.cache.current_user().id); for reaction in &dm_message.reactions { diff --git a/rustmail/src/handlers/guild_messages_handler.rs b/rustmail/src/handlers/guild_messages_handler.rs index 9061448b..67faabc2 100644 --- a/rustmail/src/handlers/guild_messages_handler.rs +++ b/rustmail/src/handlers/guild_messages_handler.rs @@ -1,39 +1,12 @@ -use crate::commands::CommandRegistry; -use crate::commands::add_reminder::text_command::add_reminder::add_reminder; -use crate::commands::add_staff::text_command::add_staff::add_staff; -use crate::commands::alert::text_command::alert::alert; -use crate::commands::anonreply::text_command::anonreply::anonreply; -use crate::commands::close::text_command::close::close; -use crate::commands::delete::text_command::delete::delete; -use crate::commands::edit::message_ops::edit_inbox_message; -use crate::commands::edit::text_command::edit::edit; -use crate::commands::force_close::text_command::force_close::force_close; -use crate::commands::help::text_command::help::help; -use crate::commands::id::text_command::id::id; -use crate::commands::logs::text_command::logs::logs; -use crate::commands::move_thread::text_command::move_thread::move_thread; -use crate::commands::new_thread::text_command::new_thread::new_thread; -use crate::commands::recover::text_command::recover::recover; -use crate::commands::release::text_command::release::release; -use crate::commands::remove_reminder::text_command::remove_reminder::remove_reminder; -use crate::commands::remove_staff::text_command::remove_staff::remove_staff; -use crate::commands::reply::text_command::reply::reply; -use crate::commands::take::text_command::take::take; -use crate::config::Config; -use crate::db::messages::get_thread_message_by_dm_message_id; -use crate::db::operations::messages::get_thread_message_by_message_id; -use crate::db::operations::{ - delete_message as db_delete_message, update_message_numbers_after_deletion, -}; -use crate::db::operations::{get_thread_channel_by_user_id, thread_exists, update_message_content}; -use crate::db::threads::get_thread_by_user_id; -use crate::errors::{ModmailResult, common}; -use crate::i18n::get_translated_message; -use crate::types::logs::PaginationStore; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::thread::get_thread_lock::get_thread_lock; -use crate::utils::thread::send_to_thread::send_to_thread; -use crate::{modules::threads::create_channel, utils::wrap_command}; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::modules::*; +use crate::prelude::types::*; +use crate::prelude::utils::*; +use crate::wrap_command; use serenity::all::{GuildId, MessageId, UserId}; use serenity::{ all::{ChannelId, Context, EventHandler, Message, MessageUpdateEvent}, @@ -122,12 +95,12 @@ async fn manage_incoming_message( let pool = config .db_pool .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; let error_handler = config .error_handler .as_ref() - .ok_or_else(common::database_connection_failed)?; + .ok_or_else(database_connection_failed)?; if let Some(guild_id) = msg.guild_id { let community_guild_id = config.bot.get_community_guild_id(); @@ -148,7 +121,7 @@ async fn manage_incoming_message( ) .await; - let error = common::validation_failed(&error_msg); + let error = validation_failed(&error_msg); let _ = error_handler .reply_to_msg_with_error(ctx, msg, &error) .await; @@ -164,12 +137,12 @@ async fn manage_incoming_message( if let Some(channel_id_str) = get_thread_channel_by_user_id(msg.author.id, pool).await { let channel_id_num = channel_id_str .parse::() - .map_err(|_| common::validation_failed("Invalid channel ID format"))?; + .map_err(|_| validation_failed("Invalid channel ID format"))?; let channel_id = ChannelId::new(channel_id_num); if let Err(e) = send_to_thread(ctx, channel_id, msg, config, false).await { - let error = common::validation_failed(&format!("Failed to forward message: {}", e)); + let error = validation_failed(&format!("Failed to forward message: {}", e)); let _ = error_handler .reply_to_msg_with_error(ctx, msg, &error) .await; @@ -302,7 +275,7 @@ impl EventHandler for GuildMessagesHandler { let _ = update_message_numbers_after_deletion(&thread.channel_id, num, pool).await; } - let _ = db_delete_message(&deleted_message_id.to_string(), pool).await; + let _ = delete_message(&deleted_message_id.to_string(), pool).await; } async fn message_delete_bulk( diff --git a/rustmail/src/handlers/guild_moderation_handler.rs b/rustmail/src/handlers/guild_moderation_handler.rs index f6b147cf..9bc73cc1 100644 --- a/rustmail/src/handlers/guild_moderation_handler.rs +++ b/rustmail/src/handlers/guild_moderation_handler.rs @@ -1,8 +1,8 @@ -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::features::make_buttons; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::features::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::audit_log::Action; use serenity::all::{ AutoModAction, ButtonStyle, ChannelAction, ChannelOverwriteAction, CreatorMonetizationAction, diff --git a/rustmail/src/handlers/mod.rs b/rustmail/src/handlers/mod.rs index 40be2988..dcddde79 100644 --- a/rustmail/src/handlers/mod.rs +++ b/rustmail/src/handlers/mod.rs @@ -6,3 +6,12 @@ pub mod guild_messages_handler; pub mod guild_moderation_handler; pub mod ready_handler; pub mod typing_proxy_handler; + +pub use guild_handler::*; +pub use guild_interaction_handler::*; +pub use guild_members_handler::*; +pub use guild_message_reactions_handler::*; +pub use guild_messages_handler::*; +pub use guild_moderation_handler::*; +pub use ready_handler::*; +pub use typing_proxy_handler::*; diff --git a/rustmail/src/handlers/ready_handler.rs b/rustmail/src/handlers/ready_handler.rs index d0f504c8..796abd5b 100644 --- a/rustmail/src/handlers/ready_handler.rs +++ b/rustmail/src/handlers/ready_handler.rs @@ -1,9 +1,7 @@ -use crate::commands::{CommandRegistry, CommunityRegistrable}; -use crate::config::Config; -use crate::features::sync_features; -use crate::modules::message_recovery::{recover_missing_messages, send_recovery_summary}; -use crate::modules::reminders::load_reminders; -use crate::modules::scheduled_closures::hydrate_scheduled_closures; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::features::*; +use crate::prelude::modules::*; use serenity::all::{ActivityData, CreateCommand, GuildId}; use serenity::{ all::{Context, EventHandler, Ready}, diff --git a/rustmail/src/handlers/typing_proxy_handler.rs b/rustmail/src/handlers/typing_proxy_handler.rs index 3070914f..8ae3ebcf 100644 --- a/rustmail/src/handlers/typing_proxy_handler.rs +++ b/rustmail/src/handlers/typing_proxy_handler.rs @@ -1,5 +1,5 @@ -use crate::config::Config; -use crate::db::{get_thread_channel_by_user_id, get_user_id_from_channel_id}; +use crate::prelude::config::*; +use crate::prelude::db::*; use serenity::all::{ChannelId, Context, EventHandler, TypingStartEvent, UserId}; use serenity::async_trait; use sqlx::SqlitePool; diff --git a/rustmail/src/i18n/language/cn.rs b/rustmail/src/i18n/language/cn.rs index a7a577d9..124dd4da 100644 --- a/rustmail/src/i18n/language/cn.rs +++ b/rustmail/src/i18n/language/cn.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_chinese_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/dt.rs b/rustmail/src/i18n/language/dt.rs index fa84d3aa..ec1f7d5b 100644 --- a/rustmail/src/i18n/language/dt.rs +++ b/rustmail/src/i18n/language/dt.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_dutch_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/en.rs b/rustmail/src/i18n/language/en.rs index 57af9129..20a603f4 100644 --- a/rustmail/src/i18n/language/en.rs +++ b/rustmail/src/i18n/language/en.rs @@ -1,5 +1,4 @@ -use crate::errors::dictionary::DictionaryMessage; -use crate::errors::dictionary::ErrorDictionary; +use crate::prelude::errors::*; pub fn load_english_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/fr.rs b/rustmail/src/i18n/language/fr.rs index 250bae60..68f3597a 100644 --- a/rustmail/src/i18n/language/fr.rs +++ b/rustmail/src/i18n/language/fr.rs @@ -1,5 +1,4 @@ -use crate::errors::dictionary::DictionaryMessage; -use crate::errors::dictionary::ErrorDictionary; +use crate::prelude::errors::*; pub fn load_french_messages(dict: &mut ErrorDictionary) { dict.messages.insert("database.connection_failed".to_string(), diff --git a/rustmail/src/i18n/language/gr.rs b/rustmail/src/i18n/language/gr.rs index 0b020994..0778e659 100644 --- a/rustmail/src/i18n/language/gr.rs +++ b/rustmail/src/i18n/language/gr.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_german_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/it.rs b/rustmail/src/i18n/language/it.rs index 5aaa72cf..904448bf 100644 --- a/rustmail/src/i18n/language/it.rs +++ b/rustmail/src/i18n/language/it.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_italian_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/jp.rs b/rustmail/src/i18n/language/jp.rs index c5c89612..6622c5fa 100644 --- a/rustmail/src/i18n/language/jp.rs +++ b/rustmail/src/i18n/language/jp.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_japanese_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/kr.rs b/rustmail/src/i18n/language/kr.rs index 8627c245..b0f3a3c0 100644 --- a/rustmail/src/i18n/language/kr.rs +++ b/rustmail/src/i18n/language/kr.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_korean_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/mod.rs b/rustmail/src/i18n/language/mod.rs index 2c579945..0ba63da4 100644 --- a/rustmail/src/i18n/language/mod.rs +++ b/rustmail/src/i18n/language/mod.rs @@ -9,3 +9,15 @@ pub mod kr; pub mod pr; pub mod ru; pub mod sp; + +pub use cn::*; +pub use dt::*; +pub use en::*; +pub use fr::*; +pub use gr::*; +pub use it::*; +pub use jp::*; +pub use kr::*; +pub use pr::*; +pub use ru::*; +pub use sp::*; diff --git a/rustmail/src/i18n/language/pr.rs b/rustmail/src/i18n/language/pr.rs index d8c5f927..ba0fee23 100644 --- a/rustmail/src/i18n/language/pr.rs +++ b/rustmail/src/i18n/language/pr.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_portuguese_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/ru.rs b/rustmail/src/i18n/language/ru.rs index bb1b19cf..271827f3 100644 --- a/rustmail/src/i18n/language/ru.rs +++ b/rustmail/src/i18n/language/ru.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_russian_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/language/sp.rs b/rustmail/src/i18n/language/sp.rs index 99d7f9bd..0add1810 100644 --- a/rustmail/src/i18n/language/sp.rs +++ b/rustmail/src/i18n/language/sp.rs @@ -1,4 +1,4 @@ -use crate::errors::{DictionaryMessage, ErrorDictionary}; +use crate::prelude::errors::*; pub fn load_spanish_messages(dict: &mut ErrorDictionary) { dict.messages.insert( diff --git a/rustmail/src/i18n/mod.rs b/rustmail/src/i18n/mod.rs index 08e52f45..1dfb3fdc 100644 --- a/rustmail/src/i18n/mod.rs +++ b/rustmail/src/i18n/mod.rs @@ -1,4 +1,7 @@ pub mod language; pub mod languages; pub mod utils; -pub use utils::get_translated_message; + +pub use language::*; +pub use languages::*; +pub use utils::*; diff --git a/rustmail/src/i18n/utils.rs b/rustmail/src/i18n/utils.rs index 02ca2259..0937800c 100644 --- a/rustmail/src/i18n/utils.rs +++ b/rustmail/src/i18n/utils.rs @@ -1,4 +1,4 @@ -use crate::config::Config; +use crate::prelude::config::*; use serenity::all::UserId; use std::collections::HashMap; diff --git a/rustmail/src/main.rs b/rustmail/src/main.rs index d0f5b634..43f158c2 100644 --- a/rustmail/src/main.rs +++ b/rustmail/src/main.rs @@ -1,16 +1,11 @@ -use crate::api::router::create_api_router; use crate::bot::{init_bot_state, start_bot_if_config_valid}; -use crate::config::Config; +use crate::prelude::api::*; use axum::extract::Path; use axum::response::Response; use rust_embed::RustEmbed; -use serenity::http::Http; use std::borrow::Cow; use std::net::SocketAddr; -use std::sync::Arc; use tokio::signal; -use tokio::sync::watch::Sender; -use tokio::task::JoinHandle; mod api; mod bot; @@ -23,41 +18,10 @@ mod handlers; mod i18n; mod modules; mod panel_commands; +mod prelude; mod types; mod utils; -pub struct Database; - -pub enum BotStatus { - Stopped, - Running { - handle: JoinHandle<()>, - shutdown: Sender, - }, -} - -enum BotCommand { - CheckUserRole { - user_id: u64, - role_id: u64, - resp: tokio::sync::oneshot::Sender, - }, - CheckUserIsMember { - user_id: u64, - resp: tokio::sync::oneshot::Sender, - }, - Test, -} - -struct BotState { - config: Option, - status: BotStatus, - db_pool: Option, - command_tx: tokio::sync::mpsc::Sender, - bot_http: Option>, - internal_token: String, -} - #[derive(RustEmbed)] #[folder = "static/"] struct Assets; diff --git a/rustmail/src/modules/commands.rs b/rustmail/src/modules/commands.rs index 216d4fce..0a0b0c53 100644 --- a/rustmail/src/modules/commands.rs +++ b/rustmail/src/modules/commands.rs @@ -1,9 +1,9 @@ -use crate::commands::logs::common::render_logs_page; -use crate::config::Config; -use crate::features::make_buttons; -use crate::i18n::get_translated_message; -use crate::types::logs::PaginationStore; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::features::*; +use crate::prelude::i18n::*; +use crate::prelude::types::*; +use crate::prelude::utils::*; use serenity::all::{ButtonStyle, ComponentInteraction, Context}; use serenity::builder::CreateInteractionResponse; diff --git a/rustmail/src/modules/message_recovery.rs b/rustmail/src/modules/message_recovery.rs index c391468e..f58af80a 100644 --- a/rustmail/src/modules/message_recovery.rs +++ b/rustmail/src/modules/message_recovery.rs @@ -1,11 +1,7 @@ -use crate::config::Config; -use crate::db::operations::{ - get_all_opened_threads, get_last_recovery_timestamp, get_latest_thread_message, - update_last_recovery_timestamp, -}; -use crate::db::repr::Thread; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use chrono::{DateTime, Utc}; use serenity::all::{ChannelId, Context, GetMessages, Message, MessageId, UserId}; use std::collections::HashMap; diff --git a/rustmail/src/modules/mod.rs b/rustmail/src/modules/mod.rs index ad3b788e..ad296f45 100644 --- a/rustmail/src/modules/mod.rs +++ b/rustmail/src/modules/mod.rs @@ -3,3 +3,9 @@ pub mod message_recovery; pub mod reminders; pub mod scheduled_closures; pub mod threads; + +pub use commands::*; +pub use message_recovery::*; +pub use reminders::*; +pub use scheduled_closures::*; +pub use threads::*; diff --git a/rustmail/src/modules/reminders.rs b/rustmail/src/modules/reminders.rs index ad9ed6d5..a28f8532 100644 --- a/rustmail/src/modules/reminders.rs +++ b/rustmail/src/modules/reminders.rs @@ -1,6 +1,6 @@ -use crate::commands::add_reminder::common::spawn_reminder; -use crate::config::Config; -use crate::db::reminders::get_all_pending_reminders; +use crate::prelude::commands::*; +use crate::prelude::config::*; +use crate::prelude::db::*; use serenity::all::Context; use std::sync::Arc; use tokio::sync::watch::Receiver; diff --git a/rustmail/src/modules/scheduled_closures.rs b/rustmail/src/modules/scheduled_closures.rs index b672020e..07707260 100644 --- a/rustmail/src/modules/scheduled_closures.rs +++ b/rustmail/src/modules/scheduled_closures.rs @@ -1,9 +1,6 @@ -use crate::config::Config; -use crate::db::{ - close_thread, delete_scheduled_closure, get_all_scheduled_closures, get_scheduled_closure, - get_thread_by_id, -}; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::utils::*; use chrono::Utc; use serenity::all::{ChannelId, Context, UserId}; use tokio::time::{Duration, sleep}; diff --git a/rustmail/src/modules/threads.rs b/rustmail/src/modules/threads.rs index b3d80c73..b780190d 100644 --- a/rustmail/src/modules/threads.rs +++ b/rustmail/src/modules/threads.rs @@ -1,14 +1,8 @@ -use crate::config::Config; -use crate::db::logs::get_logs_from_user_id; -use crate::db::operations::{create_thread_for_user, get_thread_channel_by_user_id}; -use crate::errors::common::validation_failed; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; -use crate::utils::message::ui; -use crate::utils::thread::get_thread_lock::get_thread_lock; -use crate::utils::thread::send_to_thread::send_to_thread; -use crate::utils::thread::user_recap::get_user_recap; -use crate::utils::time::get_member_join_date::get_member_join_date_for_user; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ ActionRowComponent, Channel, ChannelId, ComponentInteraction, Context, CreateChannel, CreateInteractionResponseFollowup, GuildId, Message, ModalInteraction, UserId, diff --git a/rustmail/src/panel_commands/mod.rs b/rustmail/src/panel_commands/mod.rs index 22d12a38..3232c864 100644 --- a/rustmail/src/panel_commands/mod.rs +++ b/rustmail/src/panel_commands/mod.rs @@ -1 +1,3 @@ pub mod user; + +pub use user::*; diff --git a/rustmail/src/panel_commands/user/mod.rs b/rustmail/src/panel_commands/user/mod.rs index 6292c6ef..340693a6 100644 --- a/rustmail/src/panel_commands/user/mod.rs +++ b/rustmail/src/panel_commands/user/mod.rs @@ -1 +1,3 @@ pub mod is_member; + +pub use is_member::*; diff --git a/rustmail/src/prelude/api.rs b/rustmail/src/prelude/api.rs new file mode 100644 index 00000000..f5115483 --- /dev/null +++ b/rustmail/src/prelude/api.rs @@ -0,0 +1 @@ +pub use crate::api::*; diff --git a/rustmail/src/prelude/commands.rs b/rustmail/src/prelude/commands.rs new file mode 100644 index 00000000..280a8e85 --- /dev/null +++ b/rustmail/src/prelude/commands.rs @@ -0,0 +1 @@ +pub use crate::commands::*; diff --git a/rustmail/src/prelude/config.rs b/rustmail/src/prelude/config.rs new file mode 100644 index 00000000..2eceedc5 --- /dev/null +++ b/rustmail/src/prelude/config.rs @@ -0,0 +1 @@ +pub use crate::config::*; diff --git a/rustmail/src/prelude/db.rs b/rustmail/src/prelude/db.rs new file mode 100644 index 00000000..a67eb0ae --- /dev/null +++ b/rustmail/src/prelude/db.rs @@ -0,0 +1 @@ +pub use crate::db::*; diff --git a/rustmail/src/prelude/errors.rs b/rustmail/src/prelude/errors.rs new file mode 100644 index 00000000..543733ee --- /dev/null +++ b/rustmail/src/prelude/errors.rs @@ -0,0 +1,10 @@ +pub use crate::errors::*; + +pub use crate::errors::types::CommandError; +pub use crate::errors::types::ConfigError; +pub use crate::errors::types::DatabaseError; +pub use crate::errors::types::DiscordError; +pub use crate::errors::types::MessageError; +pub use crate::errors::types::ModmailError; +pub use crate::errors::types::ThreadError; +pub use crate::errors::types::ValidationError; diff --git a/rustmail/src/prelude/features.rs b/rustmail/src/prelude/features.rs new file mode 100644 index 00000000..9768c6a9 --- /dev/null +++ b/rustmail/src/prelude/features.rs @@ -0,0 +1 @@ +pub use crate::features::*; diff --git a/rustmail/src/prelude/handlers.rs b/rustmail/src/prelude/handlers.rs new file mode 100644 index 00000000..a0c7c04c --- /dev/null +++ b/rustmail/src/prelude/handlers.rs @@ -0,0 +1 @@ +pub use crate::handlers::*; diff --git a/rustmail/src/prelude/i18n.rs b/rustmail/src/prelude/i18n.rs new file mode 100644 index 00000000..b78d79d5 --- /dev/null +++ b/rustmail/src/prelude/i18n.rs @@ -0,0 +1 @@ +pub use crate::i18n::*; diff --git a/rustmail/src/prelude/mod.rs b/rustmail/src/prelude/mod.rs new file mode 100644 index 00000000..b46818a7 --- /dev/null +++ b/rustmail/src/prelude/mod.rs @@ -0,0 +1,12 @@ +pub mod api; +pub mod commands; +pub mod config; +pub mod db; +pub mod errors; +pub mod features; +pub mod handlers; +pub mod i18n; +pub mod modules; +pub mod panel_commands; +pub mod types; +pub mod utils; diff --git a/rustmail/src/prelude/modules.rs b/rustmail/src/prelude/modules.rs new file mode 100644 index 00000000..f98fe384 --- /dev/null +++ b/rustmail/src/prelude/modules.rs @@ -0,0 +1 @@ +pub use crate::modules::*; diff --git a/rustmail/src/prelude/panel_commands.rs b/rustmail/src/prelude/panel_commands.rs new file mode 100644 index 00000000..e3c8b3af --- /dev/null +++ b/rustmail/src/prelude/panel_commands.rs @@ -0,0 +1 @@ +pub use crate::panel_commands::*; diff --git a/rustmail/src/prelude/types.rs b/rustmail/src/prelude/types.rs new file mode 100644 index 00000000..1b6a6584 --- /dev/null +++ b/rustmail/src/prelude/types.rs @@ -0,0 +1 @@ +pub use crate::types::*; diff --git a/rustmail/src/prelude/utils.rs b/rustmail/src/prelude/utils.rs new file mode 100644 index 00000000..7af11e7e --- /dev/null +++ b/rustmail/src/prelude/utils.rs @@ -0,0 +1 @@ +pub use crate::utils::*; diff --git a/rustmail/src/types/bot.rs b/rustmail/src/types/bot.rs new file mode 100644 index 00000000..50028301 --- /dev/null +++ b/rustmail/src/types/bot.rs @@ -0,0 +1,35 @@ +use crate::prelude::config::*; +use serenity::all::Http; +use std::sync::Arc; +use tokio::sync::watch::Sender; +use tokio::task::JoinHandle; + +pub enum BotStatus { + Stopped, + Running { + handle: JoinHandle<()>, + shutdown: Sender, + }, +} + +pub enum BotCommand { + CheckUserRole { + user_id: u64, + role_id: u64, + resp: tokio::sync::oneshot::Sender, + }, + CheckUserIsMember { + user_id: u64, + resp: tokio::sync::oneshot::Sender, + }, + Test, +} + +pub struct BotState { + pub config: Option, + pub status: BotStatus, + pub db_pool: Option, + pub command_tx: tokio::sync::mpsc::Sender, + pub bot_http: Option>, + pub internal_token: String, +} diff --git a/rustmail/src/types/mod.rs b/rustmail/src/types/mod.rs index af2c2c34..31b77172 100644 --- a/rustmail/src/types/mod.rs +++ b/rustmail/src/types/mod.rs @@ -1 +1,5 @@ +pub mod bot; pub mod logs; + +pub use bot::*; +pub use logs::*; diff --git a/rustmail/src/utils/command/defer_response.rs b/rustmail/src/utils/command/defer_response.rs index 39da1b5f..26da84b1 100644 --- a/rustmail/src/utils/command/defer_response.rs +++ b/rustmail/src/utils/command/defer_response.rs @@ -1,4 +1,4 @@ -use crate::errors::ModmailResult; +use crate::prelude::errors::*; use serenity::all::{ CommandInteraction, Context, CreateInteractionResponse, CreateInteractionResponseMessage, }; diff --git a/rustmail/src/utils/command/mod.rs b/rustmail/src/utils/command/mod.rs index 64f622f3..34e0f12d 100644 --- a/rustmail/src/utils/command/mod.rs +++ b/rustmail/src/utils/command/mod.rs @@ -2,3 +2,8 @@ pub mod category; pub mod defer_response; pub mod extract_reply_content; pub mod wrap_command; + +pub use category::*; +pub use defer_response::*; +pub use extract_reply_content::*; +pub use wrap_command::*; diff --git a/rustmail/src/utils/command/wrap_command.rs b/rustmail/src/utils/command/wrap_command.rs index 7307df71..da6714db 100644 --- a/rustmail/src/utils/command/wrap_command.rs +++ b/rustmail/src/utils/command/wrap_command.rs @@ -5,7 +5,7 @@ macro_rules! wrap_command { dyn for<'a> Fn( serenity::prelude::Context, serenity::model::prelude::Message, - &'a $crate::config::Config, + &'a $crate::prelude::config::Config, Arc, ) -> std::pin::Pin< Box< diff --git a/rustmail/src/utils/conversion/mod.rs b/rustmail/src/utils/conversion/mod.rs index e215dc69..c3607e48 100644 --- a/rustmail/src/utils/conversion/mod.rs +++ b/rustmail/src/utils/conversion/mod.rs @@ -1 +1,3 @@ pub mod hex_string_to_int; + +pub use hex_string_to_int::*; diff --git a/rustmail/src/utils/message/message_builder.rs b/rustmail/src/utils/message/message_builder.rs index 83c0d5ee..201d87cf 100644 --- a/rustmail/src/utils/message/message_builder.rs +++ b/rustmail/src/utils/message/message_builder.rs @@ -1,10 +1,8 @@ -use crate::config::Config; -use crate::db::get_thread_by_channel_id; -use crate::db::operations::{insert_staff_message, insert_user_message_with_ids}; -use crate::db::threads::get_thread_by_user_id; -use crate::errors::{DatabaseError, ModmailError}; -use crate::i18n::get_translated_message; -use crate::utils::conversion::hex_string_to_int::hex_string_to_int; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ ChannelId, Colour, CommandInteraction, Context, CreateAttachment, CreateEmbed, CreateEmbedAuthor, CreateEmbedFooter, CreateInteractionResponseFollowup, CreateMessage, diff --git a/rustmail/src/utils/message/mod.rs b/rustmail/src/utils/message/mod.rs index 2cd920b1..ab0d3a0e 100644 --- a/rustmail/src/utils/message/mod.rs +++ b/rustmail/src/utils/message/mod.rs @@ -13,3 +13,9 @@ pub mod ui { ButtonsBuilder::new() } } + +pub use category::*; +pub use message_builder::*; +pub use reply_intent::*; +pub use ui::*; +pub use ui_components::*; diff --git a/rustmail/src/utils/mod.rs b/rustmail/src/utils/mod.rs index 1e051de5..2c41d904 100644 --- a/rustmail/src/utils/mod.rs +++ b/rustmail/src/utils/mod.rs @@ -4,4 +4,8 @@ pub mod message; pub mod thread; pub mod time; -pub use crate::wrap_command; +pub use command::*; +pub use conversion::*; +pub use message::*; +pub use thread::*; +pub use time::*; diff --git a/rustmail/src/utils/thread/fetch_thread.rs b/rustmail/src/utils/thread/fetch_thread.rs index 2b78e490..122ea8c7 100644 --- a/rustmail/src/utils/thread/fetch_thread.rs +++ b/rustmail/src/utils/thread/fetch_thread.rs @@ -1,11 +1,9 @@ -use crate::{ - db::{get_thread_by_channel_id, repr::Thread}, - errors::{ModmailResult, common}, -}; +use crate::prelude::db::*; +use crate::prelude::errors::*; use sqlx::SqlitePool; pub async fn fetch_thread(db_pool: &SqlitePool, channel_id: &str) -> ModmailResult { get_thread_by_channel_id(channel_id, db_pool) .await - .ok_or_else(common::thread_not_found) + .ok_or_else(thread_not_found) } diff --git a/rustmail/src/utils/thread/get_thread_lock.rs b/rustmail/src/utils/thread/get_thread_lock.rs index 7830692e..737bdf51 100644 --- a/rustmail/src/utils/thread/get_thread_lock.rs +++ b/rustmail/src/utils/thread/get_thread_lock.rs @@ -1,4 +1,4 @@ -use crate::config::Config; +use crate::prelude::config::*; use std::sync::Arc; pub fn get_thread_lock(config: &Config, key: u64) -> Arc> { diff --git a/rustmail/src/utils/thread/mod.rs b/rustmail/src/utils/thread/mod.rs index 2ec3a7aa..487e5430 100644 --- a/rustmail/src/utils/thread/mod.rs +++ b/rustmail/src/utils/thread/mod.rs @@ -3,3 +3,9 @@ pub mod fetch_thread; pub mod get_thread_lock; pub mod send_to_thread; pub mod user_recap; + +pub use category::*; +pub use fetch_thread::*; +pub use get_thread_lock::*; +pub use send_to_thread::*; +pub use user_recap::*; diff --git a/rustmail/src/utils/thread/send_to_thread.rs b/rustmail/src/utils/thread/send_to_thread.rs index fbee0d95..7c31fc55 100644 --- a/rustmail/src/utils/thread/send_to_thread.rs +++ b/rustmail/src/utils/thread/send_to_thread.rs @@ -1,10 +1,8 @@ -use crate::config::Config; -use crate::db::operations::{ - get_staff_alerts_for_user, get_thread_id_by_user_id, is_user_left, mark_alert_as_used, -}; -use crate::errors::{DatabaseError, ModmailError, ModmailResult, ThreadError}; -use crate::i18n::get_translated_message; -use crate::utils::message::message_builder::MessageBuilder; +use crate::prelude::config::*; +use crate::prelude::db::*; +use crate::prelude::errors::*; +use crate::prelude::i18n::*; +use crate::prelude::utils::*; use serenity::all::{ChannelId, Context, CreateAttachment, GuildId, Message, UserId}; use std::collections::HashMap; diff --git a/rustmail/src/utils/thread/user_recap.rs b/rustmail/src/utils/thread/user_recap.rs index d2a6dbed..f66c93b3 100644 --- a/rustmail/src/utils/thread/user_recap.rs +++ b/rustmail/src/utils/thread/user_recap.rs @@ -1,4 +1,4 @@ -use crate::utils::time::format_duration_since::format_duration_since; +use crate::prelude::utils::*; use serenity::all::UserId; pub fn get_user_recap( diff --git a/rustmail/src/utils/time/get_member_join_date.rs b/rustmail/src/utils/time/get_member_join_date.rs index d23be15a..08f2e8f3 100644 --- a/rustmail/src/utils/time/get_member_join_date.rs +++ b/rustmail/src/utils/time/get_member_join_date.rs @@ -1,4 +1,4 @@ -use crate::utils::time::format_duration_since::format_duration_since; +use crate::prelude::utils::*; use serenity::all::{Context, GuildId, Message, UserId}; pub async fn get_member_join_date( diff --git a/rustmail/src/utils/time/mod.rs b/rustmail/src/utils/time/mod.rs index 4f689c2e..c6c58f6c 100644 --- a/rustmail/src/utils/time/mod.rs +++ b/rustmail/src/utils/time/mod.rs @@ -1,2 +1,8 @@ pub mod format_duration_since; pub mod get_member_join_date; + +pub use get_member_join_date::*; + +pub use format_duration_since::*; +pub use format_duration_since::*; +pub use get_member_join_date::*;