Files
logview/app/common/Controller/Logs.php

43 lines
1.4 KiB
PHP

<?php
namespace ProVM\Common\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Views\Blade as View;
use ProVM\Common\Service\Logs as Service;
use ProVM\Logview\Log;
class Logs
{
public function get(ServerRequestInterface $request, ResponseInterface $response, View $view, Service $service, string $log_file): ResponseInterface
{
$log = $service->get($log_file);
$levels = [];
foreach (Log::LEVELS as $level) {
$levels[strtolower($level)] = (object) [
'text' => Log::COLORS[$level],
'background' => Log::BACKGROUNDS[$level],
];
}
return $view->render($response, 'logs.show', compact('log', 'levels'));
}
public function getMore(ServerRequestInterface $request, ResponseInterface $response, View $view, Service $service, string $log_file, int $start = 0, int $amount = 100): ResponseInterface
{
$log = $service->get($log_file);
$logs = [];
foreach ($log->getLogs($start, $amount) as $l) {
$logs []= $l;
}
$logs = array_reverse($logs);
$total = $log->getTotal();
$response->getBody()->write(\Safe\json_encode([
'total' => $total,
'logs' => $logs
]));
return $response->withStatus(200)
->withHeader('Content-Type', 'application/json');
}
}