diff --git a/spec/spec.md b/spec/spec.md index 5dd5e23..ea8a6dc 100644 --- a/spec/spec.md +++ b/spec/spec.md @@ -217,10 +217,13 @@ and end with comment + +Close variable with ; + mandatory: - emailAddress= - emailPassword= - emailServerAddress= + emailAddress + emailPassword + emailServerAddress + databaseConnectionString={postgresql://{user}:{password}@{host}:{port}/{database}} optional:{default} emailServerPort={587} diff --git a/src/default-cavecomm.conf b/src/default-cavecomm.conf index 129ca5b..5b7ed9e 100644 --- a/src/default-cavecomm.conf +++ b/src/default-cavecomm.conf @@ -1,6 +1,7 @@ #configstart# # Mandatory: +# databaseConnectionString={postgresql://{user}:{password}@{host}:{port}/{database}} # emailAddress= # emailPassword= # emailServerAddress= @@ -12,16 +13,16 @@ +databaseConnectionString=postgresql://cavecommadmin:cavecomm@localhost:5432/cavecomm; +emailAddress=testuser0ed6e@waifu.club; -emailAddress=testuser0ed6e@waifu.club +emailPassword=Ve4m6GSjJ; -emailPassword=Ve4m6GSjJ +emailServerAddress=mail.cock.li; -emailServerAddress=mail.cock.li +emailServerPort=587; -emailServerPort=587 - -emailAddressDisplay=Cavecomm Automated Management System +emailAddressDisplay=Cavecomm Automated Management System; #configend# diff --git a/src/main.cpp b/src/main.cpp index 2c8e3ff..d734ed3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,7 +30,9 @@ int main(int argc, char *argv[]) { // return crow::json::wvalue x({{"message", rows[0][0].as();}}); // }); - string databaseURI = "postgresql://cavecommadmin:cavecomm@localhost:5432/cavecomm"; + + + string databaseURI = configuration.databaseConnectionString; /* diff --git a/src/utilities.cpp b/src/utilities.cpp index ab5fef9..387461e 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -36,11 +36,19 @@ namespace Utilities { return splitVector; } + std::string trimFromDelimiter(std::string stringToTrim, char delimiter) { + int position = stringToTrim.find(delimiter); + if (position != std::string::npos) + return stringToTrim.substr(0, position); + return stringToTrim; + } + /* * Struct representing the configuration file */ struct config { std::string configPath = "cavecomm.conf"; + std::string databaseConnectionString; std::string emailAddress; std::string emailPassword; std::string emailServerAddress; @@ -54,7 +62,8 @@ namespace Utilities { int checkMandatoryVariables() { if (emailAddress.compare("") == 0 || emailPassword.compare("") == 0 - || emailServerAddress.compare("") == 0) + || emailServerAddress.compare("") == 0 + || databaseConnectionString.compare("") == 0) return 1; return 0; @@ -105,23 +114,27 @@ namespace Utilities { if (lineVector.size() == 2) { std::cout << lineVector.at(0) << " - " << lineVector.at(1) << std::endl; if (lineVector.at(0).compare("emailAddress") == 0) { - emailAddress = lineVector.at(1); + emailAddress = trimFromDelimiter(lineVector.at(1), ';'); continue; } if (lineVector.at(0).compare("emailPassword") == 0) { - emailPassword = lineVector.at(1); + emailPassword = trimFromDelimiter(lineVector.at(1), ';'); continue; } if (lineVector.at(0).compare("emailServerAddress") == 0) { - emailServerAddress = lineVector.at(1); + emailServerAddress = trimFromDelimiter(lineVector.at(1), ';'); continue; } if (lineVector.at(0).compare("emailServerPort") == 0) { - emailServerPort = std::stoi(lineVector.at(1)); + emailServerPort = std::stoi(trimFromDelimiter(lineVector.at(1), ';')); continue; } if (lineVector.at(0).compare("emailAddressDisplay") == 0) { - emailAddressDisplay = lineVector.at(1); + emailAddressDisplay = trimFromDelimiter(lineVector.at(1), ';'); + continue; + } + if (lineVector.at(0).compare("databaseConnectionString") == 0) { + databaseConnectionString = trimFromDelimiter(lineVector.at(1), ';'); continue; } }