database request to check if an email has a reset key assigned to it

This commit is contained in:
Tina_Azure
2023-04-27 00:35:00 +02:00
parent ad0fb5a10e
commit 80c674d104

View File

@ -118,6 +118,12 @@ namespace Database {
const static std::string PREPARED_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH = "updateFreelancerPasswordHash"; const static std::string PREPARED_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH = "updateFreelancerPasswordHash";
const static std::string SQL_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH = "update freelancers set hash = $1, salt = $2 where emailaddress = $3;"; const static std::string SQL_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH = "update freelancers set hash = $1, salt = $2 where emailaddress = $3;";
/*
* Name and Statement for prepared statement to check if an email has a reset key
*/
const static std::string PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY = "checkFreelancerResetKey";
const static std::string SQL_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY = "select count(*) from passwordresetkeys where freelanceremail = $1;";
/* /*
* Statement to remove expired reset keys * Statement to remove expired reset keys
@ -531,6 +537,20 @@ namespace Database {
connection.unprepare(PREPARED_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH); connection.unprepare(PREPARED_STATEMENT_UPDATE_FREELANCER_PASSWORD_HASH);
return 0; return 0;
} }
/*
* Executes the prepared statement SELECT_CHECK_FREELANCER_RESET_KEY
* Takes an open pqxx::connection and the password reset key
* returns 1 if email has reset key
*/
pqxx::result executePreparedStatement_SELECT_CHECK_FREELANCER_RESET_KEY(pqxx::connection &connection, const std::string& freelancerEmail) {
connection.prepare(PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY, SQL_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY);
pqxx::work work(connection);
pqxx::result result = work.exec_prepared(PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY, freelancerEmail);
work.commit();
connection.unprepare(PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_RESET_KEY);
return result;
}
/* /*
* parses the result and returns a JSON * parses the result and returns a JSON
* Takes a result and optionally the desired row * Takes a result and optionally the desired row