diff options
| author | ilotterytea <iltsu@alright.party> | 2025-07-03 18:05:11 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-07-03 18:05:47 +0500 |
| commit | e23ccfb00c8fa39926b32e94be6bc379e70ba11d (patch) | |
| tree | ad4758e8a1b947782186f11f1739dde1aca9ca23 /bot/src/commands/request.cpp | |
| parent | 1e8f182b083679b06d8e30fe52b1ed1130a19287 (diff) | |
feat: separated requester from request
Diffstat (limited to 'bot/src/commands/request.cpp')
| -rw-r--r-- | bot/src/commands/request.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/bot/src/commands/request.cpp b/bot/src/commands/request.cpp index 434c222..e5a1e7e 100644 --- a/bot/src/commands/request.cpp +++ b/bot/src/commands/request.cpp @@ -27,16 +27,16 @@ namespace bot::command { o["message"] = sol::lua_nil; } - o["sender"] = this->user.as_lua_table(luaState); - o["channel"] = this->channel.as_lua_table(luaState); - o["channel_preference"] = this->channel_preferences.as_lua_table(luaState); - o["rights"] = this->user_rights.as_lua_table(luaState); + o["sender"] = requester.user.as_lua_table(luaState); + o["channel"] = requester.channel.as_lua_table(luaState); + o["channel_preference"] = + requester.channel_preferences.as_lua_table(luaState); + o["rights"] = requester.user_rights.as_lua_table(luaState); return o; } - std::optional<Request> generate_request( - const command::CommandLoader &command_loader, + std::optional<Requester> get_requester( const irc::Message<irc::MessageType::Privmsg> &irc_message, std::unique_ptr<db::BaseDatabase> &conn) { // fetching channel @@ -146,12 +146,20 @@ namespace bot::command { user_right.set_level(level); } + return (Requester){channel, pref, user, user_right}; + } + + std::optional<Request> generate_request( + const command::CommandLoader &command_loader, + const irc::Message<irc::MessageType::Privmsg> &irc_message, + const Requester &requester, std::unique_ptr<db::BaseDatabase> &conn) { // --- FETCHING MESSAGES std::string fullmsg = irc_message.message; - const std::string &prefix = pref.get_prefix(); + const std::string &prefix = requester.channel_preferences.get_prefix(); if (fullmsg.empty() || fullmsg.substr(0, prefix.length()) != prefix || - std::any_of(pref.get_features().begin(), pref.get_features().end(), + std::any_of(requester.channel_preferences.get_features().begin(), + requester.channel_preferences.get_features().end(), [](const schemas::ChannelFeature &f) { return f == schemas::ChannelFeature::SILENT_MODE; })) { @@ -175,8 +183,7 @@ namespace bot::command { parts.erase(parts.begin()); - Request req{command_id, std::nullopt, std::nullopt, irc_message, - channel, pref, user, user_right}; + Request req{command_id, std::nullopt, std::nullopt, irc_message, requester}; if (parts.empty()) { return req; |
