43 lines
1.4 KiB
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');
|
|
}
|
|
}
|