. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ /** @noinspection PhpMultipleClassDeclarationsInspection */ namespace Espo\Entities; use Espo\Core\Field\DateTime; use Espo\Core\ORM\Entity; use SensitiveParameter; use UnexpectedValueException; class OAuthAccount extends Entity { public const string ENTITY_TYPE = 'OAuthAccount'; public function getProvider(): OAuthProvider { $provider = $this->relations->getOne('provider'); if (!$provider instanceof OAuthProvider) { throw new UnexpectedValueException("No provider."); } return $provider; } public function getAccessToken(): ?string { return $this->get('accessToken'); } public function getRefreshToken(): ?string { return $this->get('refreshToken'); } public function getExpiresAt(): ?DateTime { /** @var ?DateTime */ return $this->getValueObject('expiresAt'); } public function setAccessToken(#[SensitiveParameter] ?string $accessToken): self { return $this->set('accessToken', $accessToken); } public function setRefreshToken(#[SensitiveParameter] ?string $refreshToken): self { return $this->set('refreshToken', $refreshToken); } public function setExpiresAt(?DateTime $expiresAt): self { return $this->setValueObject('expiresAt', $expiresAt); } }