~singpolyma/biboumi

369ccb037619871403b14c959bbb359332133810 — louiz’ 5 years ago 50cadf3
Add default values for the database columns
M src/bridge/bridge.cpp => src/bridge/bridge.cpp +4 -2
@@ 23,12 23,14 @@ static std::string in_encoding_for(const Bridge& bridge, const Iid& iid)
#ifdef USE_DATABASE
  const auto jid = bridge.get_bare_jid();
  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
  (void)bridge;
  (void)iid;
  return {"ISO-8859-1"};
#endif
  return {"ISO-8859-1"};
}

Bridge::Bridge(std::string user_jid, BiboumiComponent& xmpp, std::shared_ptr<Poller>& poller):

M src/database/column.hpp => src/database/column.hpp +5 -1
@@ 5,8 5,12 @@
template <typename T>
struct Column
{
    Column(T default_value):
        value{default_value} {}
    Column():
        value{} {}
    using real_type = T;
    T value;
    T value{};
};

struct Id: Column<std::size_t> { static constexpr auto name = "id_";

M src/database/database.hpp => src/database/database.hpp +12 -6
@@ 49,10 49,12 @@ class Database
    static constexpr auto options = ""; };

  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_";
    static constexpr auto options = ""; };
    static constexpr auto options = "";
    TlsPorts(): Column<std::string>("6697;6670") {} };

  struct Username: Column<std::string> { static constexpr auto name = "username_";
    static constexpr auto options = ""; };


@@ 73,16 75,20 @@ class Database
    static constexpr auto options = ""; };

  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_";
    static constexpr auto options = ""; };
    static constexpr auto options = "";
    RecordHistory(): Column<bool>(true) {}};

  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_";
    static constexpr auto options = ""; };
    static constexpr auto options = "";
    Persistent(): Column<bool>(false) {} };

  using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>;
  using MucLogLine = MucLogLineTable::RowType;

M tests/end_to_end/__main__.py => tests/end_to_end/__main__.py +1 -1
@@ 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='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_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",
                                             ),
                             after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))