This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
szurubooru/src/Controllers/HistoryController.php
Marcin Kurczewski 632bac8661 Added "use ..." statements
This version ditches backwards compatibility with PHP earlier than 5.6.
2014-10-18 18:48:36 +02:00

51 lines
1.5 KiB
PHP

<?php
namespace Szurubooru\Controllers;
use Szurubooru\Controllers\ViewProxies\SnapshotViewProxy;
use Szurubooru\Helpers\InputReader;
use Szurubooru\Privilege;
use Szurubooru\Router;
use Szurubooru\SearchServices\Parsers\SnapshotSearchParser;
use Szurubooru\Services\HistoryService;
use Szurubooru\Services\PrivilegeService;
final class HistoryController extends AbstractController
{
private $historyService;
private $privilegeService;
private $snapshotSearchParser;
private $inputReader;
private $snapshotViewProxy;
public function __construct(
HistoryService $historyService,
PrivilegeService $privilegeService,
SnapshotSearchParser $snapshotSearchParser,
InputReader $inputReader,
SnapshotViewProxy $snapshotViewProxy)
{
$this->historyService = $historyService;
$this->privilegeService = $privilegeService;
$this->snapshotSearchParser = $snapshotSearchParser;
$this->inputReader = $inputReader;
$this->snapshotViewProxy = $snapshotViewProxy;
}
public function registerRoutes(Router $router)
{
$router->get('/api/history', [$this, 'getFiltered']);
}
public function getFiltered()
{
$this->privilegeService->assertPrivilege(Privilege::VIEW_HISTORY);
$filter = $this->snapshotSearchParser->createFilterFromInputReader($this->inputReader);
$filter->setPageSize(50);
$result = $this->historyService->getFiltered($filter);
$entities = $this->snapshotViewProxy->fromArray($result->getEntities());
return [
'data' => $entities,
'pageSize' => $result->getPageSize(),
'totalRecords' => $result->getTotalRecords()];
}
}