Load logs

[MAILPOET-3135]
This commit is contained in:
Pavel Dohnal
2021-03-02 11:51:42 +01:00
committed by Veljko V
parent 174583cc84
commit c3372dfee8
4 changed files with 40 additions and 4 deletions

View File

@@ -3,16 +3,28 @@
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Logging\LogRepository;
use MailPoetVendor\Carbon\Carbon;
class Logs {
/** @var PageRenderer */
private $pageRenderer;
public function __construct(PageRenderer $pageRenderer) {
/** @var LogRepository */
private $logRepository;
public function __construct(
LogRepository $logRepository,
PageRenderer $pageRenderer
) {
$this->pageRenderer = $pageRenderer;
$this->logRepository = $logRepository;
}
public function render() {
$dateFrom = (new Carbon())->subDays(7);
$dateTo = new Carbon();
$logs = $this->logRepository->getLogs($dateFrom, $dateTo);
$this->pageRenderer->displayPage('logs.html', []);
}

View File

@@ -213,6 +213,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Listing\PageLimit::class)->setPublic(true);
// Logging
$container->autowire(\MailPoet\Logging\LoggerFactory::class);
$container->autowire(\MailPoet\Logging\LogRepository::class);
// Notices
$container->autowire(\MailPoet\Util\Notices\PermanentNotices::class);
//Referrals

View File

@@ -8,7 +8,7 @@ use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="logs")
* @ORM\Table(name="log")
*/
class LogEntity {
use AutoincrementedIdTrait;
@@ -21,7 +21,7 @@ class LogEntity {
private $name;
/**
* @ORM\Column(type="int", nullable=true)
* @ORM\Column(type="integer", nullable=true)
* @var int|null
*/
private $level;

View File

@@ -12,4 +12,27 @@ class LogRepository extends Repository {
protected function getEntityClassName() {
return LogEntity::class;
}
/**
* @param \DateTimeInterface|null $dateFrom
* @param \DateTimeInterface|null $dateTo
* @return LogEntity[]
*/
public function getLogs(\DateTimeInterface $dateFrom = null, \DateTimeInterface $dateTo = null): array {
$query = $this->doctrineRepository->createQueryBuilder('l')
->select('l');
if ($dateFrom instanceof \DateTimeInterface) {
$query
->where('l.createdAt > :dateFrom')
->setParameter('dateFrom', $dateFrom->format('Y-m-d H:i:s'));
}
if ($dateTo instanceof \DateTimeInterface) {
$query
->andWhere('l.createdAt < :dateTo')
->setParameter('dateTo', $dateTo->format('Y-m-d H:i:s'));
}
return $query->getQuery()->getResult();
}
}