Skip to content

Commit ef25608

Browse files
committed
Update datetime properties and implement TrackedEntity class in Version entity
Signed-off-by: Tim Goudriaan <tim@codedmonkey.com>
1 parent 7999333 commit ef25608

3 files changed

Lines changed: 18 additions & 22 deletions

File tree

migrations/Version20250715195941.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,18 @@ public function up(Schema $schema): void
1919
$this->addSql(<<<'SQL'
2020
ALTER TABLE access_token ADD last_modified_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
2121
SQL);
22+
$this->addSql(<<<'SQL'
23+
ALTER TABLE version ADD last_modified_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
24+
SQL);
2225
}
2326

2427
public function down(Schema $schema): void
2528
{
2629
$this->addSql(<<<'SQL'
2730
ALTER TABLE access_token DROP last_modified_at
2831
SQL);
32+
$this->addSql(<<<'SQL'
33+
ALTER TABLE version DROP last_modified_at
34+
SQL);
2935
}
3036
}

src/Doctrine/Entity/Version.php

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#[ORM\Entity(repositoryClass: VersionRepository::class)]
1414
#[ORM\UniqueConstraint(name: 'pkg_ver_idx', columns: ['package_id', 'normalized_version'])]
15-
class Version
15+
class Version extends TrackedEntity
1616
{
1717
#[ORM\Id]
1818
#[ORM\Column]
@@ -115,14 +115,11 @@ class Version
115115
#[ORM\OneToOne(mappedBy: 'version', cascade: ['persist', 'detach', 'remove'])]
116116
private VersionInstallations $installations;
117117

118-
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
119-
private \DateTimeInterface $createdAt;
120-
121-
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
122-
private ?\DateTimeInterface $updatedAt = null;
118+
#[ORM\Column(nullable: true)]
119+
private ?\DateTimeImmutable $updatedAt = null;
123120

124-
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
125-
private ?\DateTimeInterface $releasedAt = null;
121+
#[ORM\Column(nullable: true)]
122+
private ?\DateTimeImmutable $releasedAt = null;
126123

127124
public function __construct()
128125
{
@@ -134,7 +131,6 @@ public function __construct()
134131
$this->suggest = new ArrayCollection();
135132
$this->tags = new ArrayCollection();
136133
$this->installations = new VersionInstallations($this);
137-
$this->createdAt = new \DateTime();
138134
}
139135

140136
public function __toString(): string
@@ -487,27 +483,22 @@ public function getInstallations(): VersionInstallations
487483
return $this->installations;
488484
}
489485

490-
public function getCreatedAt(): \DateTimeInterface
491-
{
492-
return $this->createdAt;
493-
}
494-
495-
public function getUpdatedAt(): ?\DateTimeInterface
486+
public function getUpdatedAt(): ?\DateTimeImmutable
496487
{
497488
return $this->updatedAt;
498489
}
499490

500-
public function setUpdatedAt(\DateTimeInterface $updatedAt): void
491+
public function setUpdatedAt(\DateTimeImmutable $updatedAt): void
501492
{
502493
$this->updatedAt = $updatedAt;
503494
}
504495

505-
public function getReleasedAt(): ?\DateTimeInterface
496+
public function getReleasedAt(): ?\DateTimeImmutable
506497
{
507498
return $this->releasedAt;
508499
}
509500

510-
public function setReleasedAt(?\DateTimeInterface $releasedAt): void
501+
public function setReleasedAt(?\DateTimeImmutable $releasedAt): void
511502
{
512503
$this->releasedAt = $releasedAt;
513504
}

src/Package/PackageMetadataResolver.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ private function updatePackage(Package $package, array $composerPackages, ?VcsDr
178178

179179
if (!$package->getVersions()->contains($version)) {
180180
$package->getVersions()->add($version);
181+
$this->entityManager->persist($version);
181182
}
182183

183184
$this->updateVersion($package, $version, $composerPackage, $driver);
@@ -241,8 +242,8 @@ private function updateVersion(Package $package, Version $version, CompletePacka
241242
$version->setType($this->sanitize($data->getType()));
242243

243244
$version->setPackage($package);
244-
$version->setUpdatedAt(new \DateTime());
245-
$version->setReleasedAt($data->getReleaseDate());
245+
$version->setUpdatedAt(new \DateTimeImmutable());
246+
$version->setReleasedAt(\DateTimeImmutable::createFromInterface($data->getReleaseDate()));
246247

247248
$version->setAuthors([]);
248249
if ($data->getAuthors()) {
@@ -383,8 +384,6 @@ private function updateVersion(Package $package, Version $version, CompletePacka
383384
} else {
384385
$version->setReadme(null);
385386
}
386-
387-
$em->persist($version);
388387
}
389388

390389
private function sanitize(?string $str): ?string

0 commit comments

Comments
 (0)