diff --git a/src/main.cpp b/src/main.cpp index 25d6164..4432127 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,26 +42,10 @@ int main(int argc, char *argv[]) { * Freelancer Profile listing for customers */ CROW_ROUTE(app, "/@") - ([databaseURI](string alias) { - pqxx::connection databaseConnection(databaseURI); - pqxx::result resultAlias = Database::executePreparedStatement_SELECT_ALIAS(databaseConnection, alias); - - crow::json::wvalue resultJsonAlias; - + ([configuration](string alias) { string redirectionHTML = "alias_Redirect.html"; - - if (resultAlias.size() > 0) { - resultJsonAlias = Database::convertResultRowToJSON(resultAlias); - } - else - { - //If the alias does not exist redirect back to the index. - resultJsonAlias["route"] = "/"; - } - + crow::mustache::context ctx(getAlias(configuration, alias)); auto page = crow::mustache::load(redirectionHTML); - crow::mustache::context ctx(resultJsonAlias); - return page.render(ctx); }); diff --git a/src/utilities.cpp b/src/utilities.cpp index 49feaa6..d243bc7 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -252,4 +252,21 @@ namespace Utilities { std::string hashPassword(const std::string& pwsalt, const std::string& password) { return createHashSha512(pwsalt + password); } + + /* + * Gets The Alias + * takes configuration + * returns crow::json::wvalue with the Alias + */ + crow::json::wvalue getAlias(const Utilities::config& configuration, const std::string& alias) { + pqxx::connection databaseConnection(configuration.databaseConnectionString); + pqxx::result resultAlias = Database::executePreparedStatement_SELECT_ALIAS(databaseConnection, alias); + crow::json::wvalue resultJsonAlias; + if (!resultAlias.empty()) + resultJsonAlias = Database::convertResultRowToJSON(resultAlias); + else + resultJsonAlias["route"] = "/"; //If the alias does not exist redirect back to the index. + return resultJsonAlias; + } + } \ No newline at end of file