From 2064d219e19550cd885bee103a06e3f1cb7bc8e2 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Tue, 30 Apr 2024 01:16:41 +0500 Subject: feat: create a new db connection for each message and pass work to it --- src/handlers.cpp | 4 +++- src/handlers.hpp | 4 +++- src/main.cpp | 14 +++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/handlers.cpp b/src/handlers.cpp index b483abd..bcf3245 100644 --- a/src/handlers.cpp +++ b/src/handlers.cpp @@ -1,6 +1,7 @@ #include "handlers.hpp" #include +#include #include #include @@ -14,7 +15,8 @@ namespace bot::handlers { void handle_private_message( const InstanceBundle &bundle, const command::CommandLoader &command_loader, - const irc::Message &message) { + const irc::Message &message, + const pqxx::work &work) { std::optional request = command::generate_request(command_loader, message); diff --git a/src/handlers.hpp b/src/handlers.hpp index ed74551..33b57b2 100644 --- a/src/handlers.hpp +++ b/src/handlers.hpp @@ -3,10 +3,12 @@ #include "bundle.hpp" #include "commands/command.hpp" #include "irc/message.hpp" +#include "pqxx/pqxx" namespace bot::handlers { void handle_private_message( const InstanceBundle &bundle, const command::CommandLoader &command_loader, - const irc::Message &message); + const irc::Message &message, + const pqxx::work &work); } diff --git a/src/main.cpp b/src/main.cpp index c7e8e2f..67cf3a5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -56,10 +56,18 @@ int main(int argc, char *argv[]) { conn.close(); client.on( - [&client, &command_loader, &localization]( - const bot::irc::Message &message) { + [&client, &command_loader, &localization, + &cfg](const bot::irc::Message &message) { bot::InstanceBundle bundle{client, localization}; - bot::handlers::handle_private_message(bundle, command_loader, message); + + pqxx::connection conn(GET_DATABASE_CONNECTION_URL(cfg)); + pqxx::work work(conn); + + bot::handlers::handle_private_message(bundle, command_loader, message, + work); + + work.commit(); + conn.close(); }); client.run(); -- cgit v1.2.3