diff --git a/src/utilities.cpp b/src/utilities.cpp index 1d45f63..0475241 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -279,4 +279,20 @@ namespace Utilities { pqxx::result result = Database::executeStatement_SELECT_FREELANCERS_WITHCOMMISSIONSSTATE(databaseConnection); return Database::convertResultToJSON(result, "freelancerProfiles"); } + + /* + * Checks if freelancer is logged in + * Takes config, the loginkey and freelancerid taken from the secure cookie + * returns true if logged in + */ + bool checkFreelancerLoginState(const Utilities::config& configuration, const std::string& loginKey, const std::string& freelancerEmail) { + bool loggedIn = false; + //check if freelancer exists + pqxx::connection databaseConnection(configuration.databaseConnectionString); + pqxx::result checkLoginKey = Database::executePreparedStatement_SELECT_CHECK_FREELANCER_LOGIN_STATE(databaseConnection, freelancerEmail, loginKey); + int checkLoginKeyExtracted = std::stoi(checkLoginKey.at(0).at(0).c_str()); + if (checkLoginKeyExtracted == 1) + loggedIn = true; + return loggedIn; + } } \ No newline at end of file