src/Entity/ApiToken.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Serializer\Annotation\Groups;
  5. /**
  6.  * ApiToken
  7.  *
  8.  * @ORM\Table(name="api_token")
  9.  * @ORM\Entity(repositoryClass="App\Repository\ApiTokenRepository")
  10.  */
  11. class ApiToken
  12. {
  13.     /**
  14.      * @var int
  15.      *
  16.      * @ORM\Id
  17.      * @ORM\Column(name="id", type="integer", options={"unsigned":true})
  18.      * @ORM\GeneratedValue(strategy="AUTO")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @var string
  23.      *
  24.      * @ORM\Column(name="token", type="string", length=255)
  25.      */
  26.     private $token;
  27.     /**
  28.      * @var \DateTime
  29.      *
  30.      * @ORM\Column(name="expires_at", type="datetime")
  31.      */
  32.     private $expiresAt;
  33.     /**
  34.      * @ORM\ManyToOne(targetEntity="App\Entity\Users", inversedBy="apiTokens")
  35.      * @ORM\JoinColumn(nullable=false)
  36.      * @ORM\JoinColumn(onDelete="CASCADE")
  37.      */
  38.     private $user;
  39.     public function __construct(Users $user\DateTime $expiresAt)
  40.     {
  41.         $this->token bin2hex(random_bytes(60));
  42.         $this->user $user;
  43.         $this->expiresAt $expiresAt;
  44.     }
  45.     /**
  46.      * Get id
  47.      *
  48.      * @return int
  49.      */
  50.     public function getId()
  51.     {
  52.         return $this->id;
  53.     }
  54.     /**
  55.      * Get token
  56.      *
  57.      * @return string
  58.      */
  59.     public function getToken()
  60.     {
  61.         return $this->token;
  62.     }
  63.     /**
  64.      * Get expiresAt
  65.      *
  66.      * @return \DateTime
  67.      */
  68.     public function getExpiresAt()
  69.     {
  70.         return $this->expiresAt;
  71.     }
  72.     public function getUser(): ?Users
  73.     {
  74.         return $this->user;
  75.     }
  76.     public function isExpired(): bool
  77.     {
  78.         return $this->getExpiresAt() <= new \DateTime();
  79.     }
  80.     public function setUser(?Users $user): void {
  81.         $this->user $user;
  82.     }
  83. }