Files
archived-doctrine-website/lib/Requests/ProjectVersionRequests.php
2023-09-26 22:47:30 +02:00

39 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace Doctrine\Website\Requests;
use Doctrine\StaticWebsiteGenerator\Request\ArrayRequestCollection;
use Doctrine\StaticWebsiteGenerator\Request\RequestCollection;
use Doctrine\Website\Model\Project;
use Doctrine\Website\Repositories\ProjectRepository;
final readonly class ProjectVersionRequests
{
/** @param ProjectRepository<Project> $projectRepository */
public function __construct(
private ProjectRepository $projectRepository,
) {
}
public function getProjectVersions(): RequestCollection
{
/** @var Project[] $projects */
$projects = $this->projectRepository->findAll();
$requests = [];
foreach ($projects as $project) {
foreach ($project->getVersions() as $version) {
$requests[] = [
'slug' => $project->getSlug(),
'versionSlug' => $version->getSlug(),
];
}
}
return new ArrayRequestCollection($requests);
}
}