|
3 | 3 | namespace CodedMonkey\Dirigent\Controller\Dashboard; |
4 | 4 |
|
5 | 5 | use CodedMonkey\Dirigent\Attribute\IsGrantedAccess; |
| 6 | +use CodedMonkey\Dirigent\Doctrine\Entity\Distribution; |
6 | 7 | use CodedMonkey\Dirigent\Doctrine\Entity\Package; |
7 | 8 | use CodedMonkey\Dirigent\Doctrine\Entity\PackageProvideLink; |
8 | 9 | use CodedMonkey\Dirigent\Doctrine\Entity\PackageRequireLink; |
9 | 10 | use CodedMonkey\Dirigent\Doctrine\Entity\PackageSuggestLink; |
| 11 | +use CodedMonkey\Dirigent\Doctrine\Repository\DistributionRepository; |
10 | 12 | use CodedMonkey\Dirigent\Doctrine\Repository\PackageRepository; |
11 | 13 | use CodedMonkey\Dirigent\EasyAdmin\PackagePaginator; |
12 | 14 | use Composer\Semver\VersionParser; |
@@ -35,7 +37,7 @@ public function info(string $packageName): Response |
35 | 37 | return $this->versionInfo($packageName, $version->getNormalizedVersion()); |
36 | 38 | } |
37 | 39 |
|
38 | | - #[Route('/packages/{packageName}/v/{packageVersion}', name: 'dashboard_packages_version_info', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])] |
| 40 | + #[Route('/packages/{packageName}/v/{packageVersion}', name: 'dashboard_packages_version_info', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+', 'packageVersion' => '.*'])] |
39 | 41 | #[IsGrantedAccess] |
40 | 42 | public function versionInfo(string $packageName, string $packageVersion): Response |
41 | 43 | { |
@@ -73,6 +75,22 @@ public function versions(string $packageName): Response |
73 | 75 | ]); |
74 | 76 | } |
75 | 77 |
|
| 78 | + #[Route('/packages/{packageName}/distributions', name: 'dashboard_packages_distributions', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])] |
| 79 | + #[IsGrantedAccess] |
| 80 | + public function distributions(string $packageName): Response |
| 81 | + { |
| 82 | + $package = $this->packageRepository->findOneBy(['name' => $packageName]); |
| 83 | + |
| 84 | + /** @var DistributionRepository $distributionRepository */ |
| 85 | + $distributionRepository = $this->entityManager->getRepository(Distribution::class); |
| 86 | + $distributions = $distributionRepository->findByPackage($package); |
| 87 | + |
| 88 | + return $this->render('dashboard/packages/package_distributions.html.twig', [ |
| 89 | + 'package' => $package, |
| 90 | + 'distributions' => $distributions, |
| 91 | + ]); |
| 92 | + } |
| 93 | + |
76 | 94 | #[Route('/packages/{packageName}/dependents', name: 'dashboard_packages_dependents', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])] |
77 | 95 | #[IsGrantedAccess] |
78 | 96 | public function dependents(Request $request, string $packageName): Response |
|
0 commit comments