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;
/**
* @ORM\Table("oauth2_clients")
/**
* @var string
*
- * @ORM\Column(name="title", type="text", nullable=true)
+ * @ORM\Column(name="name", type="text", nullable=false)
+ *
+ * @Groups({"user_api_with_client"})
*/
protected $name;
- public function __construct()
+ /**
+ * @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")
+ */
+ private $user;
+
+ public function __construct(User $user)
{
parent::__construct();
+ $this->user = $user;
}
/**
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();
+ }
}