ILIAS  trunk Revision v12.0_alpha-16-g3e876e53c80
ILIAS\Registration\DualOptIn\Entity\PendingRegistration Class Reference
+ Collaboration diagram for ILIAS\Registration\DualOptIn\Entity\PendingRegistration:

Public Member Functions

 __construct (private PendingRegistrationId $id, private ObjectId $usr_id, private PendingRegistrationHash $hash, private \DateTimeImmutable $created_at, private PendingRegistrationStatus $status=PendingRegistrationStatus::PENDING)
 
 id ()
 
 userId ()
 
 hash ()
 
 createdAt ()
 
 status ()
 
 isConfirmed ()
 
 isExpired ()
 
 isPending ()
 
 withConfirmed ()
 
 withExpired ()
 
 hasExpiredAt (\DateTimeImmutable $now, int $validity_in_seconds)
 
 withEvaluatedState (\DateTimeImmutable $now, ?int $validity_in_seconds)
 

Detailed Description

Definition at line 27 of file PendingRegistration.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::__construct ( private PendingRegistrationId  $id,
private ObjectId  $usr_id,
private PendingRegistrationHash  $hash,
private \DateTimeImmutable  $created_at,
private PendingRegistrationStatus  $status = PendingRegistrationStatus::PENDING 
)

Definition at line 29 of file PendingRegistration.php.

35 {
36 }

Member Function Documentation

◆ createdAt()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::createdAt ( )

Definition at line 53 of file PendingRegistration.php.

53 : \DateTimeImmutable
54 {
55 return $this->created_at;
56 }

Referenced by ILIAS\Registration\DualOptIn\Repository\PendingRegistrationDatabaseRepository\store().

+ Here is the caller graph for this function:

◆ hasExpiredAt()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::hasExpiredAt ( \DateTimeImmutable  $now,
int  $validity_in_seconds 
)

Definition at line 116 of file PendingRegistration.php.

116 : bool
117 {
118 $expiration_date = $this->created_at->modify("+{$validity_in_seconds} seconds");
119
120 return $now >= $expiration_date;
121 }

Referenced by ILIAS\Registration\DualOptIn\Entity\PendingRegistration\withEvaluatedState().

+ Here is the caller graph for this function:

◆ hash()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::hash ( )

◆ id()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::id ( )

Definition at line 38 of file PendingRegistration.php.

39 {
40 return $this->id;
41 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23

References $id.

Referenced by ILIAS\Registration\DualOptIn\Repository\PendingRegistrationDatabaseRepository\delete(), and ILIAS\Registration\DualOptIn\Repository\PendingRegistrationDatabaseRepository\store().

+ Here is the caller graph for this function:

◆ isConfirmed()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::isConfirmed ( )

Definition at line 63 of file PendingRegistration.php.

63 : bool
64 {
65 return $this->status === PendingRegistrationStatus::CONFIRMED;
66 }

References ILIAS\Registration\DualOptIn\Entity\PendingRegistration\status().

+ Here is the call graph for this function:

◆ isExpired()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::isExpired ( )

◆ isPending()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::isPending ( )

Definition at line 73 of file PendingRegistration.php.

73 : bool
74 {
75 return $this->status === PendingRegistrationStatus::PENDING;
76 }

References ILIAS\Registration\DualOptIn\Entity\PendingRegistration\status().

+ Here is the call graph for this function:

◆ status()

◆ userId()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::userId ( )

◆ withConfirmed()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::withConfirmed ( )

Definition at line 78 of file PendingRegistration.php.

78 : self
79 {
81 throw new \DomainException('Cannot confirm an expired registration.');
82 }
83
84 if ($this->status === PendingRegistrationStatus::CONFIRMED) {
85 return $this;
86 }
87
88 return new self(
90 $this->usr_id,
91 $this->hash,
92 $this->created_at,
93 PendingRegistrationStatus::CONFIRMED
94 );
95 }

References $id, ILIAS\Registration\DualOptIn\Entity\EXPIRED, and ILIAS\Registration\DualOptIn\Entity\PendingRegistration\status().

+ Here is the call graph for this function:

◆ withEvaluatedState()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::withEvaluatedState ( \DateTimeImmutable  $now,
?int  $validity_in_seconds 
)
Exceptions

InvalidArgumentException if the passed validity in seconds is invalid

Definition at line 126 of file PendingRegistration.php.

126 : self
127 {
128 if (\is_int($validity_in_seconds) && $validity_in_seconds < 1) {
129 throw new \InvalidArgumentException('Invalid validity_in_seconds value.');
130 }
131
132 if ($this->status === PendingRegistrationStatus::CONFIRMED) {
133 return $this;
134 }
135
136 if (\is_int($validity_in_seconds) && $this->hasExpiredAt($now, $validity_in_seconds)) {
137 return $this->withExpired();
138 }
139
140 return $this;
141 }
hasExpiredAt(\DateTimeImmutable $now, int $validity_in_seconds)

References ILIAS\Registration\DualOptIn\Entity\PendingRegistration\hasExpiredAt(), ILIAS\Registration\DualOptIn\Entity\PendingRegistration\status(), and ILIAS\Registration\DualOptIn\Entity\PendingRegistration\withExpired().

Referenced by ILIAS\Registration\DualOptIn\Service\DualOptInServiceImpl\deleteExpiredUserObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ withExpired()

ILIAS\Registration\DualOptIn\Entity\PendingRegistration::withExpired ( )

Definition at line 97 of file PendingRegistration.php.

97 : self
98 {
99 if ($this->status === PendingRegistrationStatus::CONFIRMED) {
100 throw new \DomainException('Cannot expire an already confirmed registration.');
101 }
102
104 return $this;
105 }
106
107 return new self(
108 $this->id,
109 $this->usr_id,
110 $this->hash,
111 $this->created_at,
113 );
114 }

References $id, ILIAS\Registration\DualOptIn\Entity\EXPIRED, and ILIAS\Registration\DualOptIn\Entity\PendingRegistration\status().

Referenced by ILIAS\Registration\DualOptIn\Entity\PendingRegistration\withEvaluatedState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: