Initial xentral_oss_20.3.c9ffacf

This commit is contained in:
Alex
2021-05-21 08:49:41 +02:00
parent 5406e4a551
commit 34e5ac43d9
18884 changed files with 2109867 additions and 0 deletions
@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace Xentral\Modules\Log\Service;
use Xentral\Components\Database\Database;
use Xentral\Modules\Log\Exception\InvalidArgumentException;
final class DatabaseLogService
{
/** @var Database $db */
private $db;
/**
* @param Database $database
*/
public function __construct(Database $database)
{
$this->db = $database;
}
/**
* Deletes all log entries.
*
* @return int Amount of deleted log entries
*/
public function removeAllLogs(): int
{
$sql = 'DELETE FROM `log` WHERE 1';
return $this->db->fetchAffected($sql);
}
/**
* Removes log entries that are older than specified amount of days.
*
* @param int $days
*
* @throws InvalidArgumentException
*
* @return int Amount of deleted log entries
*/
public function removeLogsOlderThan(int $days): int
{
if ($days < 1) {
throw new InvalidArgumentException('Negative days not acceptable.');
}
$sql = 'DELETE FROM `log` WHERE DATE_SUB(CURDATE(), INTERVAL :days DAY) >= log_time';
return $this->db->fetchAffected($sql, ['days' => $days]);
}
}