Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 17 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
| AnonymizeStatisticDataByCron | |
0.00% |
0 / 17 |
|
0.00% |
0 / 2 |
30 | |
0.00% |
0 / 1 |
| __construct | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
6 | |||
| startAnonymizing | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
12 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace BO\Zmsdb\Helper; |
| 4 | |
| 5 | use BO\Zmsdb\ProcessStatusArchived; |
| 6 | use BO\Zmsdb\Config as ConfigRepository; |
| 7 | |
| 8 | class AnonymizeStatisticDataByCron |
| 9 | { |
| 10 | protected $verbose = false; |
| 11 | |
| 12 | protected $timespan = '-90 days'; |
| 13 | |
| 14 | public function __construct($verbose = false) |
| 15 | { |
| 16 | $this->verbose = $verbose; |
| 17 | |
| 18 | // Fetching the configuration setting |
| 19 | $config = (new ConfigRepository())->readEntity(); |
| 20 | |
| 21 | // Extracting the retention setting and converting it to an integer |
| 22 | $retentionSetting = explode(',', $config->getPreference('buergerarchiv', 'setRetentionPeriodDays')); |
| 23 | if ($retentionSetting[0] !== "none") { |
| 24 | // Ensure it's a positive integer and assign it to timespan |
| 25 | print("Using retention period set in admin system config {$retentionSetting[0]} days.\n\n"); |
| 26 | $this->timespan = (int)$retentionSetting[0]; |
| 27 | } else { |
| 28 | // Default to 90 days if the setting is not set or not numeric |
| 29 | print("Using default retention period 90 days.\n\n"); |
| 30 | $this->timespan = 90; |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | public function startAnonymizing(\DateTimeImmutable $currentDate, $commit = false) |
| 35 | { |
| 36 | // Adjust the currentDate based on the numeric timespan |
| 37 | $targetDate = $currentDate->modify("-{$this->timespan} days"); |
| 38 | print("Beginning anonymization for entries older than {$targetDate->format('Y-m-d')}.\n\n"); |
| 39 | |
| 40 | if ($commit) { |
| 41 | $processStatusArchived = new ProcessStatusArchived(); |
| 42 | $success = $processStatusArchived->anonymizeNames($targetDate); |
| 43 | if ($success) { |
| 44 | print("Anonymization process completed successfully.\n\n"); |
| 45 | } else { |
| 46 | print("An error occurred during the anonymization process.\n\n"); |
| 47 | } |
| 48 | } else { |
| 49 | print("Dry run mode - no changes have been made to the database.\n\n"); |
| 50 | } |
| 51 | } |
| 52 | } |