From d1594da57e8897c04c11da6ce689f68e3a7eebee Mon Sep 17 00:00:00 2001 From: frytimo Date: Tue, 9 Jul 2024 15:51:36 -0300 Subject: [PATCH] implement changes in to the fax queue class (#7044) Co-authored-by: Tim Fry --- app/fax_queue/app_config.php | 8 ++++++ app/fax_queue/resources/classes/fax_queue.php | 26 ++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/fax_queue/app_config.php b/app/fax_queue/app_config.php index 1cc692ddba..cfc89c9884 100644 --- a/app/fax_queue/app_config.php +++ b/app/fax_queue/app_config.php @@ -68,6 +68,14 @@ $apps[$x]['default_settings'][$y]['default_setting_value'] = "30"; $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "How often to process the queue. Default 30 seconds."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6be1aa5b-62af-4de7-94d0-7e17dffb576e"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "fax_queue"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "database_retention_days"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "30"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of days to retain the fax queue logs in the database for the maintenance app."; //$y++; //$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "afd729d9-cf69-4793-a140-21093814d314"; //$apps[$x]['default_settings'][$y]['default_setting_category'] = "fax_queue"; diff --git a/app/fax_queue/resources/classes/fax_queue.php b/app/fax_queue/resources/classes/fax_queue.php index d7c87c9377..fab44b0b0b 100644 --- a/app/fax_queue/resources/classes/fax_queue.php +++ b/app/fax_queue/resources/classes/fax_queue.php @@ -247,7 +247,31 @@ if (!class_exists('fax_queue')) { } } + /** + * Removes records from the v_fax_files and v_fax_logs tables. Called by the maintenance application. + * @param settings $settings Settings object + * @return void + */ + public static function database_maintenance(settings $settings): void { + $database = $settings->database(); + $domains = maintenance_service::get_domains($database); + foreach ($domains as $domain_uuid => $domain_name) { + $domain_settings = new settings(['database'=>$database, 'domain_uuid'=>$domain_uuid]); + $retention_days = $domain_settings->get('fax_queue', 'database_retention_days', ''); + //delete from v_fax_queue where fax_status = 'sent' and fax_date < NOW() - INTERVAL '$days_keep_fax_queue days' + if (!empty($retention_days) && is_numeric($retention_days)) { + $sql = "delete from v_fax_queue where fax_status = 'sent' and fax_date < NOW() - INTERVAL '$retention_days days'"; + $sql .= " and domain_uuid = '$domain_uuid'"; + $database->execute($sql); + if (!empty($database->message['code']) && $database->message['code'] == 200) { + maintenance_service::log_write(self::class, "removed successfully", $domain_uuid); + } else { + maintenance_service::log_write(self::class, "Unable to remove database entries", $domain_uuid, maintenance_service::LOG_ERROR); + } + } + } + } } } -?> \ No newline at end of file +?>