From 0ea012c49432f4c7c3f0059028f847250bb1c376 Mon Sep 17 00:00:00 2001 From: frytimo Date: Fri, 5 Jul 2024 20:37:50 -0300 Subject: [PATCH] Update database_maintenance (#7037) --- app/xml_cdr/app_config.php | 8 +++++++ app/xml_cdr/resources/classes/xml_cdr.php | 27 ++++++++++++++--------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/app/xml_cdr/app_config.php b/app/xml_cdr/app_config.php index 7490ecba6d..981608b005 100644 --- a/app/xml_cdr/app_config.php +++ b/app/xml_cdr/app_config.php @@ -443,6 +443,14 @@ $apps[$x]['default_settings'][$y]['default_setting_value'] = "#d4d4d4"; $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = ""; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b4cc1590-68fe-4eee-bf79-982b2ae626bd"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "cdr"; + $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'] = "730"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of days maintenance application will retain logs in the database."; //schema details $y=0; diff --git a/app/xml_cdr/resources/classes/xml_cdr.php b/app/xml_cdr/resources/classes/xml_cdr.php index b103e5326c..1641d9c4b3 100644 --- a/app/xml_cdr/resources/classes/xml_cdr.php +++ b/app/xml_cdr/resources/classes/xml_cdr.php @@ -2074,7 +2074,6 @@ if (!class_exists('xml_cdr')) { */ public static function database_maintenance(settings $settings): void { //set table name for query -// $table = self::TABLE; $table = 'xml_cdr'; //get a database connection @@ -2087,31 +2086,31 @@ if (!class_exists('xml_cdr')) { //get domain settings $domain_settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]); - //get the retention days for xml cdr table - $xml_cdr_retention_days = $domain_settings->get('maintenance', self::class . '_database_retention_days', ''); + //get the retention days for xml cdr table using 'cdr' and 'database_retention_days' + $xml_cdr_retention_days = $domain_settings->get('cdr', 'database_retention_days', ''); //get the retention days for xml cdr flow table if ($database->table_exists('xml_cdr_flow')) { - $xml_cdr_flow_retention_days = $domain_settings->get('maintenance', 'xml_cdr_flow_database_retention_days', $xml_cdr_retention_days); + $xml_cdr_flow_retention_days = $domain_settings->get('cdr', 'flow_database_retention_days', $xml_cdr_retention_days); } else { $xml_cdr_flow_retention_days = null; } //get the retention days for xml cdr json table if ($database->table_exists('xml_cdr_json')) { - $xml_cdr_json_retention_days = $domain_settings->get('maintenance', 'xml_cdr_json_database_retention_days', $xml_cdr_retention_days); + $xml_cdr_json_retention_days = $domain_settings->get('cdr', 'json_database_retention_days', $xml_cdr_retention_days); } else { $xml_cdr_json_retention_days = null; } //get the retention days for xml cdr logs table if ($database->table_exists('xml_cdr_logs')) { - $xml_cdr_logs_retention_days = $domain_settings->get('maintenance', 'xml_cdr_logs_database_retention_days', $xml_cdr_retention_days); + $xml_cdr_logs_retention_days = $domain_settings->get('cdr', 'logs_database_retention_days', $xml_cdr_retention_days); } else { $xml_cdr_logs_retention_days = null; } - //ensure we have a retention days + //ensure we have retention days if (!empty($xml_cdr_retention_days) && is_numeric($xml_cdr_retention_days)) { //clear out old xml_cdr records @@ -2127,7 +2126,7 @@ if (!class_exists('xml_cdr')) { } //clear out old xml_cdr_flow records - if ($xml_cdr_flow_retention_days !== null) { + if (!empty($xml_cdr_flow_retention_days)) { $sql = "delete from v_xml_cdr_flow WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_flow_retention_days} days'" . " and domain_uuid = '{$domain_uuid}"; $database->execute($sql); @@ -2141,7 +2140,7 @@ if (!class_exists('xml_cdr')) { } //clear out old xml_cdr_json records - if ($xml_cdr_json_retention_days !== null) { + if (!empty($xml_cdr_json_retention_days)) { $sql = "DELETE FROM v_xml_cdr_json WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_json_retention_days} days'" . " and domain_uuid = '{$domain_uuid}"; $database->execute($sql); @@ -2155,7 +2154,7 @@ if (!class_exists('xml_cdr')) { } //clear out old xml_cdr_logs records - if ($xml_cdr_logs_retention_days !== null) { + if (!empty($xml_cdr_logs_retention_days)) { $sql = "DELETE FROM v_xml_cdr_logs WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_logs_retention_days} days'" . " and domain_uuid = '{$domain_uuid}'"; $database->execute($sql); @@ -2174,6 +2173,14 @@ if (!class_exists('xml_cdr')) { maintenance_service::log_flush(); } + /** + * Return CDR for the default settings category name instead of using the class name xml_cdr + * @return string Returns 'CDR' for the name + */ + public static function database_maintenance_category(): string { + return "cdr"; + } + } //class }