diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6174019..8a1abc9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -3,7 +3,7 @@ on: push: branches: - master - - '[0-9]+\-[0-9]+\-x' + - 'MTC\-[0-9]+' pull_request: jobs: diff --git a/Service/EventLogCleanup.php b/Service/EventLogCleanup.php index 59700c8..07841e7 100644 --- a/Service/EventLogCleanup.php +++ b/Service/EventLogCleanup.php @@ -27,6 +27,7 @@ class EventLogCleanup public const EMAIL_STATS = 'email_stats'; public const EMAIL_STATS_TOKENS = 'email_stats_tokens'; private const EMAIL_STATS_DEVICES = 'email_stats_devices'; + public const PAGE_HITS = 'page_hits'; /** * @var array @@ -37,6 +38,7 @@ class EventLogCleanup self::EMAIL_STATS => self::PREFIX.'email_stats LEFT JOIN '.self::PREFIX.'emails ON '.self::PREFIX.'email_stats.email_id = '.self::PREFIX.'emails.id WHERE ('.self::PREFIX.'emails.is_published = 0 OR '.self::PREFIX.'emails.publish_down < DATE_SUB(NOW(),INTERVAL :daysOld DAY) OR '.self::PREFIX.'email_stats.email_id IS NULL) AND '.self::PREFIX.'email_stats.date_sent < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', self::EMAIL_STATS_TOKENS => self::PREFIX.'email_stats '.self::SET.' WHERE date_sent < DATE_SUB(NOW(),INTERVAL :daysOld DAY) AND tokens IS NOT NULL', self::EMAIL_STATS_DEVICES => self::PREFIX.'email_stats_devices WHERE '.self::PREFIX.'email_stats_devices.date_opened < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', + self::PAGE_HITS => self::PREFIX.'page_hits WHERE date_hit < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', ]; private array $update = [ @@ -59,6 +61,9 @@ class EventLogCleanup self::EMAIL_STATS_DEVICES => [ 'daysOld' => self::DEFAULT_DAYS, ], + self::PAGE_HITS => [ + 'daysOld' => self::DEFAULT_DAYS, + ], ]; private array $types = [ @@ -77,6 +82,9 @@ class EventLogCleanup self::EMAIL_STATS_DEVICES => [ 'daysOld' => \PDO::PARAM_INT, ], + self::PAGE_HITS => [ + 'daysOld' => \PDO::PARAM_INT, + ], ]; private string $dryRunMessage = ' This is a dry run.'; @@ -125,6 +133,7 @@ public function deleteEventLogEntries(int $daysOld, ?int $campaignId, bool $dryR self::EMAIL_STATS => 0, self::EMAIL_STATS_TOKENS => 0, self::EMAIL_STATS_DEVICES => 0, + self::PAGE_HITS => 0, ]; $this->connection->beginTransaction(); diff --git a/Tests/Service/EventLogCleanupTest.php b/Tests/Service/EventLogCleanupTest.php index 11465f1..b25dbec 100644 --- a/Tests/Service/EventLogCleanupTest.php +++ b/Tests/Service/EventLogCleanupTest.php @@ -66,6 +66,7 @@ public function runProvider(): Generator EventLogCleanup::CAMPAIGN_LEAD_EVENTS => true, EventLogCleanup::EMAIL_STATS => true, EventLogCleanup::EMAIL_STATS_TOKENS => true, + EventLogCleanup::PAGE_HITS => true, ], [ [ @@ -83,6 +84,11 @@ public function runProvider(): Generator ['daysOld' => $daysOld], ['daysOld' => \PDO::PARAM_INT], ], + [ + 'SELECT COUNT(1) as cnt FROM prefix_table_page_hits WHERE date_hit < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', + ['daysOld' => $daysOld], + ['daysOld' => \PDO::PARAM_INT], + ], [ 'SELECT COUNT(1) as cnt FROM prefix_table_email_stats_devices WHERE prefix_table_email_stats_devices.date_opened < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', ['daysOld' => $daysOld], @@ -94,8 +100,8 @@ public function runProvider(): Generator ['daysOld' => \PDO::PARAM_INT], ], ], - [3, 14, 23, 55, 57], - '3 lead_event_log, 14 campaign_lead_event_log, 55 email_stats_devices and 57 email_stats rows would have been deleted. 23 email_stats_tokens will be set to NULL. This is a dry run.', + [3, 14, 23, 4, 55, 57], + '3 lead_event_log, 14 campaign_lead_event_log, 4 page_hits, 55 email_stats_devices and 57 email_stats rows would have been deleted. 23 email_stats_tokens will be set to NULL. This is a dry run.', true, null, ]; @@ -216,6 +222,7 @@ public function runProvider(): Generator EventLogCleanup::CAMPAIGN_LEAD_EVENTS => true, EventLogCleanup::EMAIL_STATS => true, EventLogCleanup::EMAIL_STATS_TOKENS => true, + EventLogCleanup::PAGE_HITS => true, ], [ [ @@ -233,6 +240,11 @@ public function runProvider(): Generator ['daysOld' => $daysOld], ['daysOld' => \PDO::PARAM_INT], ], + [ + 'DELETE prefix_table_page_hits FROM prefix_table_page_hits WHERE date_hit < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', + ['daysOld' => $daysOld], + ['daysOld' => \PDO::PARAM_INT], + ], [ 'DELETE prefix_table_email_stats_devices FROM prefix_table_email_stats_devices WHERE prefix_table_email_stats_devices.date_opened < DATE_SUB(NOW(),INTERVAL :daysOld DAY)', ['daysOld' => $daysOld], @@ -244,8 +256,8 @@ public function runProvider(): Generator ['daysOld' => \PDO::PARAM_INT], ], ], - [3, 14, 32, 55, 41], - '3 lead_event_log, 14 campaign_lead_event_log, 55 email_stats_devices and 41 email_stats rows have been deleted. 32 email_stats_tokens have been set to NULL.', + [3, 14, 32, 21, 55, 41], + '3 lead_event_log, 14 campaign_lead_event_log, 21 page_hits, 55 email_stats_devices and 41 email_stats rows have been deleted. 32 email_stats_tokens have been set to NULL.', false, null, ];