1212use CodedMonkey \Dirigent \Doctrine \Entity \RegistryPackageMirroring ;
1313use CodedMonkey \Dirigent \Doctrine \Entity \Version ;
1414use CodedMonkey \Dirigent \Doctrine \Repository \KeywordRepository ;
15+ use CodedMonkey \Dirigent \Doctrine \Repository \PackageRepository ;
1516use CodedMonkey \Dirigent \Doctrine \Repository \RegistryRepository ;
16- use CodedMonkey \Dirigent \Doctrine \Repository \VersionRepository ;
1717use CodedMonkey \Dirigent \Entity \MetadataLinkType ;
1818use CodedMonkey \Dirigent \Message \DumpPackageProvider ;
1919use CodedMonkey \Dirigent \Message \UpdatePackageLinks ;
@@ -35,7 +35,7 @@ public function __construct(
3535 private EntityManagerInterface $ entityManager ,
3636 private KeywordRepository $ keywordRepository ,
3737 private RegistryRepository $ registryRepository ,
38- private VersionRepository $ versionRepository ,
38+ private PackageRepository $ packageRepository ,
3939 ) {
4040 }
4141
@@ -142,7 +142,12 @@ private function resolveVcsRepository(Package $package): void
142142 */
143143 private function updatePackage (Package $ package , array $ composerPackages , ?VcsDriverInterface $ driver = null ): void
144144 {
145- $ existingVersionMetadata = $ this ->versionRepository ->getVersionMetadataForUpdate ($ package );
145+ $ this ->packageRepository ->fetchPackageDataForUpdate ($ package );
146+
147+ $ existingVersionMetadata = [];
148+ foreach ($ package ->getVersions () as $ version ) {
149+ $ existingVersionMetadata [strtolower ($ version ->getNormalizedName ())] = $ version ;
150+ }
146151
147152 /** @var ?Version $primaryVersion Version to use as the package info source */
148153 $ primaryVersion = null ;
@@ -156,9 +161,7 @@ private function updatePackage(Package $package, array $composerPackages, ?VcsDr
156161 }
157162
158163 $ key = strtolower ($ composerPackage ->getVersion ());
159- if ($ versionId = $ existingVersionMetadata [$ key ] ?? null ) {
160- $ version = $ this ->entityManager ->getReference (Version::class, $ versionId );
161- } else {
164+ if (null === $ version = $ existingVersionMetadata [$ key ] ?? null ) {
162165 $ version = new Version ($ package );
163166 $ version ->setName ($ composerPackage ->getPrettyVersion ());
164167 $ version ->setNormalizedName ($ composerPackage ->getVersion ());
@@ -200,8 +203,7 @@ private function updatePackage(Package $package, array $composerPackages, ?VcsDr
200203 }
201204
202205 // Remove outdated versions
203- foreach ($ existingVersionMetadata as $ versionId ) {
204- $ version = $ this ->entityManager ->getReference (Version::class, $ versionId );
206+ foreach ($ existingVersionMetadata as $ version ) {
205207 $ this ->entityManager ->remove ($ version );
206208 }
207209
0 commit comments