diff --git a/src/main.cpp b/src/main.cpp index fedb51c..8a1ae7c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -48,11 +48,10 @@ int main(int argc, char *argv[]) { * Freelancer Profile Page for customers */ CROW_ROUTE(app, "/customer/").methods("POST"_method) - ([databaseURI](const crow::request& postRequest, string freelancerName ) { + ([configuration](const crow::request& postRequest, string freelancerName ) { //Parses the request body and extracts the specified value int freelancerID = stoi(Utilities::extractSingleValueFromRequestBody(postRequest.body.c_str(), "freelancerID")); - - pqxx::connection databaseConnection(databaseURI); + pqxx::connection databaseConnection(configuration.databaseConnectionString); pqxx::result resultFreelancer = Database::executePreparedStatement_SELECT_FREELANCER(databaseConnection, freelancerID); //error handling if invalid ID was delivered @@ -71,7 +70,6 @@ int main(int argc, char *argv[]) { if (resultFreelancer.size() != 0){ /* * puts freelancer data into context - * todo::solve this with less hardcoding */ for (int i = 0; i < resultFreelancer.columns(); ++i) { string freelancerColumn = resultFreelancer.column_name(i); @@ -89,10 +87,10 @@ int main(int argc, char *argv[]) { * Page representing a freelancers Template */ CROW_ROUTE(app, "/customer//template/").methods("POST"_method) - ([databaseURI](const crow::request& postRequest, string freelancerName, string templateName ) { + ([configuration](const crow::request& postRequest, string freelancerName, string templateName ) { int templateID = stoi(Utilities::extractSingleValueFromRequestBody(postRequest.body.c_str(), "templateID")); - pqxx::connection databaseConnection(databaseURI); + pqxx::connection databaseConnection(configuration.databaseConnectionString); pqxx::result resultTemplate = Database::executePreparedStatement_SELECT_TEMPLATE(databaseConnection, templateID); crow::json::wvalue resultJsonTemplate = Database::convertResultRowToJSON(resultTemplate); @@ -119,10 +117,10 @@ int main(int argc, char *argv[]) { * Page for entry of request data */ CROW_ROUTE(app, "/customer//template//request").methods("POST"_method) - ([databaseURI](const crow::request& postRequest, string freelancerName, string templateName ) { + ([configuration](const crow::request& postRequest, string freelancerName, string templateName ) { int templateID = stoi(Utilities::extractSingleValueFromRequestBody(postRequest.body.c_str(), "templateID")); - pqxx::connection databaseConnection(databaseURI); + pqxx::connection databaseConnection(configuration.databaseConnectionString); pqxx::result resultTemplate = Database::executePreparedStatement_SELECT_TEMPLATE(databaseConnection, templateID); crow::json::wvalue resultJsonTemplate = Database::convertResultRowToJSON(resultTemplate); @@ -138,8 +136,8 @@ int main(int argc, char *argv[]) { * executes the creation of a new request. */ CROW_ROUTE(app, "/customer//template//request/fulfilment").methods("POST"_method) - ([databaseURI, configuration](const crow::request& postRequest, string freelancerName, string templateName ) { - pqxx::connection databaseConnection(databaseURI); + ([configuration](const crow::request& postRequest, string freelancerName, string templateName ) { + pqxx::connection databaseConnection(configuration.databaseConnectionString); string templateHTML = "customer_Freelancer_Template_Request_Fulfilment_ERROR.html"; Database::requestsItem newRequest; @@ -338,7 +336,7 @@ int main(int argc, char *argv[]) { * Page for freelancer to sign up fulfillment */ CROW_ROUTE(app, "/freelancer/signup/fulfilment").methods("POST"_method) - ([databaseURI, configuration](const crow::request& postRequest ) { + ([configuration](const crow::request& postRequest ) { crow::mustache::context ctx; string postRequestBody = postRequest.body; @@ -364,7 +362,7 @@ int main(int argc, char *argv[]) { if (requestFillCompletion) { //check if email address hasn't been registered yet - pqxx::connection databaseConnection(databaseURI); + pqxx::connection databaseConnection(configuration.databaseConnectionString); pqxx::result checkResult = Database::executePreparedStatement_SELECT_CHECK_EMAIL_EXISTS(databaseConnection, email); int checkResultExtracted = stoi(checkResult.at(0).at(0).c_str()); @@ -374,6 +372,7 @@ int main(int argc, char *argv[]) { pwhash = Utilities::hashPassword(pwsalt, password); int errorLevel = Database::executePreparedStatement_INSERT_NEW_FREELANCER(databaseConnection, email, name, pwsalt, pwhash); + if (errorLevel == 0) { ctx["REGISTRATION_SUCCESS"] = true; ctx["freelancername"] = name; @@ -390,7 +389,7 @@ int main(int argc, char *argv[]) { else { ctx["REGISTRATION_ERROR"] = true; ctx["freelanceremail"] = email; - ctx["REGISTRATION_ERROR_EMAIL_ALREADY_IN_USE<"] = true; + ctx["REGISTRATION_ERROR_EMAIL_ALREADY_IN_USE"] = true; } } else { @@ -402,7 +401,7 @@ int main(int argc, char *argv[]) { auto page = crow::mustache::load(templateHTML); - return page.render(); + return page.render(ctx); });