summaryrefslogtreecommitdiff
path: root/src/database/database.cpp
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-08-12 16:39:19 +0200
committerlouiz’ <louiz@louiz.org>2016-08-12 16:39:19 +0200
commit8ec823be4fc587abb7282a06a12f9df9c37810d2 (patch)
tree7ce77108ac2e6da63ee89a4f5fb6dbc97fe8a67f /src/database/database.cpp
parent7ffe278e0556d222291840dc91c785ccf824fee5 (diff)
downloadbiboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.gz
biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.bz2
biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.xz
biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.zip
Save received and sent messages into the database
Diffstat (limited to 'src/database/database.cpp')
-rw-r--r--src/database/database.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp
index 61e1b47..5513946 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -3,7 +3,9 @@
#include <database/database.hpp>
#include <logger/logger.hpp>
+#include <irc/iid.hpp>
#include <string>
+#include <uuid.h>
using namespace std::string_literals;
@@ -79,9 +81,38 @@ db::IrcChannelOptions Database::get_irc_channel_options_with_server_default(cons
return coptions;
}
+void Database::store_muc_message(const std::string& owner, const Iid& iid,
+ Database::time_point date,
+ const std::string& body,
+ const std::string& nick)
+{
+ db::MucLogLine line(*Database::db);
+
+ line.uuid = Database::gen_uuid();
+ line.owner = owner;
+ line.ircChanName = iid.get_local();
+ line.ircServerName = iid.get_server();
+ line.date = date.time_since_epoch().count();
+ line.body = body;
+ line.nick = nick;
+
+ line.update();
+}
+
void Database::close()
{
Database::db.reset(nullptr);
}
+
+std::string Database::gen_uuid()
+{
+ char uuid_str[37];
+ uuid_t uuid;
+ uuid_generate(uuid);
+ uuid_unparse(uuid, uuid_str);
+ return uuid_str;
+}
+
+
#endif