submision alias delete
This commit is contained in:
@ -530,7 +530,7 @@ namespace Database {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Executes the prepared statement DELETE_FREELANCER_ALIAS
|
* Executes the prepared statement DELETE_FREELANCER_ALIAS
|
||||||
* Deletes the entry for a reset key based on a freelancer email and the alias name
|
* Deletes the entry for an alias based on a freelancer email and the alias name
|
||||||
* Takes an open pqxx::connection and the freelancers email
|
* Takes an open pqxx::connection and the freelancers email
|
||||||
*/
|
*/
|
||||||
void executePreparedStatement_DELETE_FREELANCER_ALIAS(pqxx::connection &connection, const std::string& aliasName, const std::string& freelancerEmail) {
|
void executePreparedStatement_DELETE_FREELANCER_ALIAS(pqxx::connection &connection, const std::string& aliasName, const std::string& freelancerEmail) {
|
||||||
@ -758,6 +758,17 @@ namespace Database {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Executes the prepared statement DELETE_FREELANCER_FILE_SUBMISSION_ALIAS
|
||||||
|
* Deletes the entry for a submission alias
|
||||||
|
* Takes an open pqxx::connection and the freelancers email and the alias name
|
||||||
|
*/
|
||||||
|
void executePreparedStatement_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS(pqxx::connection &connection, const std::string& freelancerEmail, const std::string& fileName, const std::string& aliasName) {
|
||||||
|
pqxx::work work(connection);
|
||||||
|
work.exec_prepared(PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS, freelancerEmail, fileName, aliasName);
|
||||||
|
work.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Executes the prepared statement INSERT_FREELANCER_FILE_SUBMISSION
|
* Executes the prepared statement INSERT_FREELANCER_FILE_SUBMISSION
|
||||||
|
@ -351,6 +351,7 @@ namespace DatabaseStatementConstCollection {
|
|||||||
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH = 43;
|
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH = 43;
|
||||||
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = 44;
|
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = 44;
|
||||||
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS = 45;
|
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS = 45;
|
||||||
|
const static int ID_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS = 46;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -403,7 +404,8 @@ namespace DatabaseStatementConstCollection {
|
|||||||
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
||||||
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
||||||
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
|
{PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS}
|
||||||
};
|
};
|
||||||
/*
|
/*
|
||||||
* Easy access to prepared statement name via int
|
* Easy access to prepared statement name via int
|
||||||
@ -454,7 +456,8 @@ namespace DatabaseStatementConstCollection {
|
|||||||
{ID_INSERT_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
{ID_INSERT_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
||||||
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
||||||
{ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
{ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
|
{ID_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
15
src/main.cpp
15
src/main.cpp
@ -1201,8 +1201,6 @@ int main(int argc, char *argv[]) {
|
|||||||
crow::mustache::context ctx;
|
crow::mustache::context ctx;
|
||||||
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
||||||
ctx = Utilities::getFreelancerSubmissions(configuration, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL));
|
ctx = Utilities::getFreelancerSubmissions(configuration, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL));
|
||||||
|
|
||||||
|
|
||||||
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
||||||
}
|
}
|
||||||
auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW);
|
auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW);
|
||||||
@ -1228,15 +1226,18 @@ int main(int argc, char *argv[]) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Page for freelancer to delete existing Link to a submission todo:implement
|
* Page for freelancer to delete existing Link to a submission todo:implement proper encoding decoding to avoid routing errors # causes routing to cut off
|
||||||
*/
|
*/
|
||||||
CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink/<string>/delete").methods(crow::HTTPMethod::GET)
|
CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink/<int>/<string>/<string>/delete").methods(crow::HTTPMethod::GET)
|
||||||
([&, configuration](const crow::request& getRequest, const string& aliasName) {
|
([&, configuration](const crow::request& getRequest, const int freelancerID, const string& aliasName, const string& fileName) {
|
||||||
auto& cookieCtx = app.get_context<crow::CookieParser>(getRequest);
|
auto& cookieCtx = app.get_context<crow::CookieParser>(getRequest);
|
||||||
crow::mustache::context ctx;
|
crow::mustache::context ctx;
|
||||||
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
||||||
|
string formatedAlias = to_string(freelancerID);
|
||||||
|
formatedAlias.append("/");
|
||||||
|
formatedAlias.append(aliasName);
|
||||||
|
Utilities::deleteFreelancerSubmissionAlias(configuration, formatedAlias, fileName, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL));
|
||||||
|
ctx["filename"] = fileName;
|
||||||
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
||||||
}
|
}
|
||||||
auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT);
|
auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT);
|
||||||
|
@ -38,8 +38,8 @@ namespace TemplateConstCollection {
|
|||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW = "freelancer_Submission_Management_View.html";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW = "freelancer_Submission_Management_View.html";
|
||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK = "freelancer_Submission_Management_View_Link.html";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK = "freelancer_Submission_Management_View_Link.html";
|
||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT = "freelancer_Submission_Management_View_Link_Delete_Fulfilment.html";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT = "freelancer_Submission_Management_View_Link_Delete_Fulfilment.html";
|
||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK = "freelancer_Submission_Management_View_Generate_link.html";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK = "freelancer_Submission_Management_View_Generate_Link.html";
|
||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK_FULFILMENT = "freelancer_Submission_Management_View_Generate_link_fulfilment.html";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK_FULFILMENT = "freelancer_Submission_Management_View_Generate_Link_Fulfilment.html";
|
||||||
|
|
||||||
//Mustache Error/Success variable names
|
//Mustache Error/Success variable names
|
||||||
const static std::string MUSTACHE_ERROR_COMMISSIONS_CLOSED = "ERROR_COMMISSIONS_CLOSED";
|
const static std::string MUSTACHE_ERROR_COMMISSIONS_CLOSED = "ERROR_COMMISSIONS_CLOSED";
|
||||||
|
@ -754,6 +754,16 @@ namespace Utilities {
|
|||||||
Database::executePreparedStatement_DELETE_FREELANCER_ALIAS(databaseConnection, aliasName, emailAddress);
|
Database::executePreparedStatement_DELETE_FREELANCER_ALIAS(databaseConnection, aliasName, emailAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deletes a submissions alias
|
||||||
|
* takes config the alias name the file name and the freelancers email
|
||||||
|
*/
|
||||||
|
void deleteFreelancerSubmissionAlias(const Utilities::config& configuration, const std::string& aliasName, const std::string& fileName, const std::string& emailAddress) {
|
||||||
|
pqxx::connection databaseConnection(configuration.databaseConnectionString);
|
||||||
|
Database::prepareStatement(databaseConnection, ID_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS);
|
||||||
|
Database::executePreparedStatement_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS(databaseConnection, emailAddress, fileName, aliasName);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generates an alias route to the freelancers profile
|
* Generates an alias route to the freelancers profile
|
||||||
* takes a freelancers name
|
* takes a freelancers name
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
{{> templateIncludes/style.css.html}}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>Submission Management: New Link for {{filename}}</h2>
|
||||||
|
{{^COOKIE_LOGGED_IN}}
|
||||||
|
Please Log in.
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
{{#COOKIE_LOGGED_IN}}
|
||||||
|
{{^POST_ERROR}}
|
||||||
|
<form action="/freelancer/submissionManagement/view/generateLink/fulfilment/{{filename}}" method="post">
|
||||||
|
<p>Link Preview: {{domain}}/{{freelancerid}}/</label><input type="text" id="alias" name="alias" value=""><br>
|
||||||
|
<button type="submit" class="button">Create Link</button>
|
||||||
|
</form>
|
||||||
|
{{/POST_ERROR}}
|
||||||
|
{{#POST_ERROR}}
|
||||||
|
{{#REQUEST_NOT_FILLED}}
|
||||||
|
<p>Error: Invalid Request</p>
|
||||||
|
{{/REQUEST_NOT_FILLED}}
|
||||||
|
{{/POST_ERROR}}
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
{{> templateIncludes/freelancerLoginSignupProfileLogoutInterface.html.html}}
|
||||||
|
<br>
|
||||||
|
{{> templateIncludes/returnToIndexButton.html.html}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
{{> templateIncludes/style.css.html}}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{^COOKIE_LOGGED_IN}}
|
||||||
|
Please Log in.
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
{{#COOKIE_LOGGED_IN}}
|
||||||
|
{{^SUBMISSION_ALIAS_ERROR}}
|
||||||
|
<div>
|
||||||
|
Link successfully created: <a href="https://{{submissionLink}}">{{submissionLink}}</a>
|
||||||
|
</div>
|
||||||
|
{{/SUBMISSION_ALIAS_ERROR}}
|
||||||
|
{{#SUBMISSION_ALIAS_ERROR}}
|
||||||
|
{{#SUBMISSION_ALIAS_ERROR_INVALID}}
|
||||||
|
<div>
|
||||||
|
Alias is invalid/already in use
|
||||||
|
</div>
|
||||||
|
{{/SUBMISSION_ALIAS_ERROR_INVALID}}
|
||||||
|
{{#REQUEST_NOT_FILLED}}
|
||||||
|
<div>
|
||||||
|
Request is invalid
|
||||||
|
</div>
|
||||||
|
{{/REQUEST_NOT_FILLED}}
|
||||||
|
{{/SUBMISSION_ALIAS_ERROR}}
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
|
||||||
|
{{> templateIncludes/freelancerLoginSignupProfileLogoutInterface.html.html}}
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -21,7 +21,7 @@
|
|||||||
<a href="https://{{domain}}/commissionSubmission/{{aliasname}}">https://{{domain}}/commissionSubmission/{{aliasname}}</a>
|
<a href="https://{{domain}}/commissionSubmission/{{aliasname}}">https://{{domain}}/commissionSubmission/{{aliasname}}</a>
|
||||||
</th>
|
</th>
|
||||||
<th>
|
<th>
|
||||||
<form action="/freelancer/submissionManagement/view/viewLink/{{aliasname}}/delete" method="get">
|
<form action="/freelancer/submissionManagement/view/viewLink/{{aliasname}}/{{filename}}/delete" method="get">
|
||||||
<button type="submit" class="button">Delete</button>
|
<button type="submit" class="button">Delete</button>
|
||||||
</form>
|
</form>
|
||||||
</th>
|
</th>
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
{{> templateIncludes/style.css.html}}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>Alias Deleted</h2>
|
||||||
|
{{^COOKIE_LOGGED_IN}}
|
||||||
|
Please Log in.
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
{{#COOKIE_LOGGED_IN}}
|
||||||
|
<form action="/freelancer/submissionManagement/view/viewLink/{{filename}}" method="get">
|
||||||
|
<button type="submit" class="button">Return to Submission</button>
|
||||||
|
</form>
|
||||||
|
{{/COOKIE_LOGGED_IN}}
|
||||||
|
{{> templateIncludes/freelancerLoginSignupProfileLogoutInterface.html.html}}
|
||||||
|
<br>
|
||||||
|
{{> templateIncludes/returnToIndexButton.html.html}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user