Files
archived-doctrine-website/lib/Controllers/ProjectController.php
2018-10-26 23:42:22 -04:00

49 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace Doctrine\Website\Controllers;
use Doctrine\StaticWebsiteGenerator\Controller\Response;
use Doctrine\Website\Repositories\ProjectContributorRepository;
use Doctrine\Website\Repositories\ProjectRepository;
class ProjectController
{
/** @var ProjectRepository */
private $projectRepository;
/** @var ProjectContributorRepository */
private $projectContributorRepository;
public function __construct(
ProjectRepository $projectRepository,
ProjectContributorRepository $projectContributorRepository
) {
$this->projectRepository = $projectRepository;
$this->projectContributorRepository = $projectContributorRepository;
}
public function index() : Response
{
return new Response([
'primaryProjects' => $this->projectRepository->findPrimaryProjects(),
'inactiveProjects' => $this->projectRepository->findInactiveProjects(),
'archivedProjects' => $this->projectRepository->findArchivedProjects(),
'integrationProjects' => $this->projectRepository->findIntegrationProjects(),
]);
}
public function view(string $docsSlug) : Response
{
$project = $this->projectRepository->findOneByDocsSlug($docsSlug);
return new Response([
'project' => $project,
'integrationProjects' => $this->projectRepository->findProjectIntegrations($project),
'maintainers' => $this->projectContributorRepository->findMaintainersByProject($project),
'contributors' => $this->projectContributorRepository->findContributorsByProject($project),
]);
}
}