summaryrefslogtreecommitdiff
path: root/bot/src/commands/request.cpp
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-07-03 18:05:11 +0500
committerilotterytea <iltsu@alright.party>2025-07-03 18:05:47 +0500
commite23ccfb00c8fa39926b32e94be6bc379e70ba11d (patch)
treead4758e8a1b947782186f11f1739dde1aca9ca23 /bot/src/commands/request.cpp
parent1e8f182b083679b06d8e30fe52b1ed1130a19287 (diff)
feat: separated requester from request
Diffstat (limited to 'bot/src/commands/request.cpp')
-rw-r--r--bot/src/commands/request.cpp27
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;