From 0512f77ed8000f2f4b6dc5b7d9d8ed0dccd0e31e Mon Sep 17 00:00:00 2001 From: Tina_Azure <-> Date: Tue, 18 Jul 2023 14:45:08 +0200 Subject: [PATCH] Prepared SQL Statment consts for primary access of the file submission data --- src/databaseStatementConstCollection.cpp | 51 +++++++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/src/databaseStatementConstCollection.cpp b/src/databaseStatementConstCollection.cpp index f73c5f0..47ba2e2 100644 --- a/src/databaseStatementConstCollection.cpp +++ b/src/databaseStatementConstCollection.cpp @@ -236,6 +236,36 @@ namespace DatabaseStatementConstCollection { const static std::string PREPARED_STATEMENT_DELETE_FREELANCER_TEMPLATE = "deleteFreelancerTemplate"; const static std::string SQL_STATEMENT_DELETE_FREELANCER_TEMPLATE = "delete from templates where id = $1 and freelancerid = (select freelancers.id from freelancers where emailaddress = $2);"; + /* + * Name and Statement for prepared statement to select file submission data for submission selection interface + */ + const static std::string PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA = "selectFreelancerFileSubmissionBaseData"; + const static std::string SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA = "select filename, round(filesize / 1024.0 / 1024.0, 4) as filesizemb, uploaddate from freelancersubmissions where freelancerid = (select freelancers.id from freelancers where emailaddress = $1)"; + + /* + * Name and Statement for prepared statement to select MB of used freelancer storage + */ + const static std::string PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE = "selectFreelancerFileSubmissionUsedStorage"; + const static std::string SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE = "select round(sum(filesize) / 1024.0 / 1024.0, 4) from freelancersubmissions where freelancerid = (select freelancers.id from freelancers where emailaddress = $1)"; + + /* + * Name and Statement for prepared statement to select fullpath of a submission based on freelancer email and filename + */ + const static std::string PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_PATH = "selectFreelancerFileSubmissionPATH"; + const static std::string SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_PATH = "select fullpath from freelancersubmissions where freelancerid = (select freelancers.id from freelancers where emailaddress = $1) and filename = $2"; + + /* + * Name and Statement for prepared statement to delete a submission based on freelancer email and filename + */ + const static std::string PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION = "deleteFreelancerFileSubmission"; + const static std::string SQL_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_PATH = "delete from freelancersubmissions where freelancerid = (select freelancers.id from freelancers where emailaddress = $1) and filename = $2"; + + /* + * Name and Statement for prepared statement to purge expired file submissions from the database + */ + const static std::string PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION = "purgeFreelancerFileSubmissions"; + const static std::string SQL_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION_PATH = "delete from freelancersubmissions where (current_timestamp - uploaddate) > make_interval(hours => $1)"; + /* * IDs of prepared statements */ @@ -276,6 +306,13 @@ namespace DatabaseStatementConstCollection { const static int ID_INSERT_FREELANCER_ALIAS = 34; const static int ID_SELECT_CHECK_FREELANCER_ALIAS = 35; const static int ID_SELECT_FREELANCER_NAME = 36; + const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA = 37; + const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE = 38; + const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_PATH = 39; + const static int ID_DELETE_FREELANCER_FILE_SUBMISSION = 40; + const static int ID_PRUGE_FREELANCER_FILE_SUBMISSION = 41; + + /* * Easy access to prepared statements via prepared statement name @@ -317,7 +354,12 @@ namespace DatabaseStatementConstCollection { {PREPARED_STATEMENT_DELETE_FREELANCER_ALIAS, SQL_STATEMENT_DELETE_FREELANCER_ALIAS}, {PREPARED_STATEMENT_INSERT_FREELANCER_ALIAS, SQL_STATEMENT_INSERT_FREELANCER_ALIAS}, {PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_ALIAS, SQL_STATEMENT_SELECT_CHECK_FREELANCER_ALIAS}, - {PREPARED_STATEMENT_SELECT_FREELANCER_NAME, SQL_STATEMENT_SELECT_FREELANCER_NAME} + {PREPARED_STATEMENT_SELECT_FREELANCER_NAME, SQL_STATEMENT_SELECT_FREELANCER_NAME}, + {PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA}, + {PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE}, + {PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_PATH, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_PATH}, + {PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_PATH}, + {PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION_PATH} }; /* * Easy access to prepared statement name via int @@ -359,7 +401,12 @@ namespace DatabaseStatementConstCollection { {ID_DELETE_FREELANCER_ALIAS, PREPARED_STATEMENT_DELETE_FREELANCER_ALIAS}, {ID_INSERT_FREELANCER_ALIAS, PREPARED_STATEMENT_INSERT_FREELANCER_ALIAS}, {ID_SELECT_CHECK_FREELANCER_ALIAS, PREPARED_STATEMENT_SELECT_CHECK_FREELANCER_ALIAS}, - {ID_SELECT_FREELANCER_NAME, PREPARED_STATEMENT_SELECT_FREELANCER_NAME} + {ID_SELECT_FREELANCER_NAME, PREPARED_STATEMENT_SELECT_FREELANCER_NAME}, + {ID_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_BASE_DATA}, + {ID_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_USED_STORAGE}, + {ID_SELECT_FREELANCER_FILE_SUBMISSION_PATH, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_PATH}, + {ID_DELETE_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION}, + {ID_PRUGE_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION} }; /*