Add default values for the database columns

This commit is contained in:
louiz’
2017-06-14 00:19:15 +02:00
parent 50cadf3dac
commit 369ccb0376
4 changed files with 22 additions and 10 deletions
+4 -2
View File
@@ -23,12 +23,14 @@ static std::string in_encoding_for(const Bridge& bridge, const Iid& iid)
#ifdef USE_DATABASE #ifdef USE_DATABASE
const auto jid = bridge.get_bare_jid(); const auto jid = bridge.get_bare_jid();
auto options = Database::get_irc_channel_options_with_server_default(jid, iid.get_server(), iid.get_local()); auto options = Database::get_irc_channel_options_with_server_default(jid, iid.get_server(), iid.get_local());
return options.col<Database::EncodingIn>(); auto result = options.col<Database::EncodingIn>();
if (!result.empty())
return result;
#else #else
(void)bridge; (void)bridge;
(void)iid; (void)iid;
return {"ISO-8859-1"};
#endif #endif
return {"ISO-8859-1"};
} }
Bridge::Bridge(std::string user_jid, BiboumiComponent& xmpp, std::shared_ptr<Poller>& poller): Bridge::Bridge(std::string user_jid, BiboumiComponent& xmpp, std::shared_ptr<Poller>& poller):
+5 -1
View File
@@ -5,8 +5,12 @@
template <typename T> template <typename T>
struct Column struct Column
{ {
Column(T default_value):
value{default_value} {}
Column():
value{} {}
using real_type = T; using real_type = T;
T value; T value{};
}; };
struct Id: Column<std::size_t> { static constexpr auto name = "id_"; struct Id: Column<std::size_t> { static constexpr auto name = "id_";
+12 -6
View File
@@ -49,10 +49,12 @@ class Database
static constexpr auto options = ""; }; static constexpr auto options = ""; };
struct Ports: Column<std::string> { static constexpr auto name = "tlsPorts_"; struct Ports: Column<std::string> { static constexpr auto name = "tlsPorts_";
static constexpr auto options = ""; }; static constexpr auto options = "";
Ports(): Column<std::string>("6667") {}};
struct TlsPorts: Column<std::string> { static constexpr auto name = "ports_"; struct TlsPorts: Column<std::string> { static constexpr auto name = "ports_";
static constexpr auto options = ""; }; static constexpr auto options = "";
TlsPorts(): Column<std::string>("6697;6670") {} };
struct Username: Column<std::string> { static constexpr auto name = "username_"; struct Username: Column<std::string> { static constexpr auto name = "username_";
static constexpr auto options = ""; }; static constexpr auto options = ""; };
@@ -73,16 +75,20 @@ class Database
static constexpr auto options = ""; }; static constexpr auto options = ""; };
struct MaxHistoryLength: Column<int> { static constexpr auto name = "maxHistoryLength_"; struct MaxHistoryLength: Column<int> { static constexpr auto name = "maxHistoryLength_";
static constexpr auto options = ""; }; static constexpr auto options = "";
MaxHistoryLength(): Column<int>(20) {} };
struct RecordHistory: Column<bool> { static constexpr auto name = "recordHistory_"; struct RecordHistory: Column<bool> { static constexpr auto name = "recordHistory_";
static constexpr auto options = ""; }; static constexpr auto options = "";
RecordHistory(): Column<bool>(true) {}};
struct VerifyCert: Column<bool> { static constexpr auto name = "verifyCert_"; struct VerifyCert: Column<bool> { static constexpr auto name = "verifyCert_";
static constexpr auto options = ""; }; static constexpr auto options = "";
VerifyCert(): Column<bool>(true) {} };
struct Persistent: Column<bool> { static constexpr auto name = "persistent_"; struct Persistent: Column<bool> { static constexpr auto name = "persistent_";
static constexpr auto options = ""; }; static constexpr auto options = "";
Persistent(): Column<bool>(false) {} };
using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>; using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>;
using MucLogLine = MucLogLineTable::RowType; using MucLogLine = MucLogLineTable::RowType;
+1 -1
View File
@@ -2417,7 +2417,7 @@ if __name__ == '__main__':
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='username']", "/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='username']",
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']", "/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']",
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']", "/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']",
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']/dataform:value[text()='ISO-8859-1']", "/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']",
"/iq/commands:command/commands:actions/commands:next", "/iq/commands:command/commands:actions/commands:next",
), ),
after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid")) after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))