19declare(strict_types=1);
33 private \DateTimeImmutable $created_at,
55 return $this->created_at;
65 return $this->
status === PendingRegistrationStatus::CONFIRMED;
75 return $this->
status === PendingRegistrationStatus::PENDING;
81 throw new \DomainException(
'Cannot confirm an expired registration.');
84 if ($this->
status === PendingRegistrationStatus::CONFIRMED) {
93 PendingRegistrationStatus::CONFIRMED
99 if ($this->
status === PendingRegistrationStatus::CONFIRMED) {
100 throw new \DomainException(
'Cannot expire an already confirmed registration.');
116 public function hasExpiredAt(\DateTimeImmutable $now,
int $validity_in_seconds): bool
118 $expiration_date = $this->created_at->modify(
"+{$validity_in_seconds} seconds");
120 return $now >= $expiration_date;
128 if (\is_int($validity_in_seconds) && $validity_in_seconds < 1) {
129 throw new \InvalidArgumentException(
'Invalid validity_in_seconds value.');
132 if ($this->
status === PendingRegistrationStatus::CONFIRMED) {
136 if (\is_int($validity_in_seconds) && $this->
hasExpiredAt($now, $validity_in_seconds)) {
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
withEvaluatedState(\DateTimeImmutable $now, ?int $validity_in_seconds)
__construct(private PendingRegistrationId $id, private ObjectId $usr_id, private PendingRegistrationHash $hash, private \DateTimeImmutable $created_at, private PendingRegistrationStatus $status=PendingRegistrationStatus::PENDING)
hasExpiredAt(\DateTimeImmutable $now, int $validity_in_seconds)
PendingRegistrationStatus