blob: 24444c9fc50fe0575a567cc26abd97c20fcbaba2 (
plain) (
tree)
|
|
<?php
namespace Wallabag\ApiBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\OAuthServerBundle\Entity\Client as BaseClient;
use Wallabag\UserBundle\Entity\User;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\SerializedName;
use JMS\Serializer\Annotation\VirtualProperty;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table("oauth2_clients")
* @ORM\Entity
*/
class Client extends BaseClient
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="text", nullable=false)
*
* @Groups({"user_api_with_client"})
*/
protected $name;
/**
* @ORM\OneToMany(targetEntity="RefreshToken", mappedBy="client", cascade={"remove"})
*/
protected $refreshTokens;
/**
* @ORM\OneToMany(targetEntity="AccessToken", mappedBy="client", cascade={"remove"})
*/
protected $accessTokens;
/**
* @var string
*
* @SerializedName("client_secret")
* @Groups({"user_api_with_client"})
*/
protected $secret;
/**
* @ORM\ManyToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="clients")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $image;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $description;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $appUrl;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $createdAt;
/**
* Client constructor.
* @param User|null $user
*/
public function __construct(User $user = null)
{
parent::__construct();
$this->user = $user;
$this->createdAt = new \DateTime();
}
/**
* Get name.
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set name.
*
* @param string $name
*
* @return Client
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* @return User
*/
public function getUser()
{
return $this->user;
}
/**
* @VirtualProperty
* @SerializedName("client_id")
* @Groups({"user_api_with_client"})
*/
public function getClientId()
{
return $this->getId() . '_' . $this->getRandomId();
}
/**
* @return string
*/
public function getImage()
{
return $this->image;
}
/**
* @param string $image
*/
public function setImage($image)
{
$this->image = $image;
}
/**
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* @param string $description
*/
public function setDescription($description)
{
$this->description = $description;
}
/**
* @return string
*/
public function getAppUrl()
{
return $this->appUrl;
}
/**
* @param string $appUrl
*/
public function setAppUrl($appUrl)
{
$this->appUrl = $appUrl;
}
/**
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
}
|