X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FEntity%2FEntry.php;h=8f4ddf613212d96fc640589f95646fce805ec87b;hb=0d42217e4e8210dd2cf86f35ba9662ca02c8a2dc;hp=b413c489c7c9291922a4b9a8fc6fea1860711011;hpb=dad1c546a521159ca65a5a7649651d37728f0e55;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php index b413c489..8f4ddf61 100644 --- a/src/Wallabag/CoreBundle/Entity/Entry.php +++ b/src/Wallabag/CoreBundle/Entity/Entry.php @@ -4,11 +4,15 @@ namespace Wallabag\CoreBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; -use Symfony\Component\Validator\Constraints as Assert; use Hateoas\Configuration\Annotation as Hateoas; use JMS\Serializer\Annotation\Groups; use JMS\Serializer\Annotation\XmlRoot; +use JMS\Serializer\Annotation\Exclude; +use JMS\Serializer\Annotation\VirtualProperty; +use JMS\Serializer\Annotation\SerializedName; +use Symfony\Component\Validator\Constraints as Assert; use Wallabag\UserBundle\Entity\User; +use Wallabag\AnnotationBundle\Entity\Annotation; /** * Entry. @@ -55,6 +59,8 @@ class Entry /** * @var bool * + * @Exclude + * * @ORM\Column(name="is_archived", type="boolean") * * @Groups({"entries_for_user", "export_all"}) @@ -64,6 +70,8 @@ class Entry /** * @var bool * + * @Exclude + * * @ORM\Column(name="is_starred", type="boolean") * * @Groups({"entries_for_user", "export_all"}) @@ -98,13 +106,12 @@ class Entry private $updatedAt; /** - * @var string - * - * @ORM\Column(name="comments", type="text", nullable=true) + * @ORM\OneToMany(targetEntity="Wallabag\AnnotationBundle\Entity\Annotation", mappedBy="entry", cascade={"persist", "remove"}) + * @ORM\JoinTable * - * @Groups({"export_all"}) + * @Groups({"entries_for_user", "export_all"}) */ - private $comments; + private $annotations; /** * @var string @@ -161,6 +168,8 @@ class Entry private $isPublic; /** + * @Exclude + * * @ORM\ManyToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="entries") * * @Groups({"export_all"}) @@ -168,7 +177,7 @@ class Entry private $user; /** - * @ORM\ManyToMany(targetEntity="Tag", inversedBy="entries", cascade={"persist"}) + * @ORM\ManyToMany(targetEntity="Tag", inversedBy="entries", cascade={"persist", "remove"}) * @ORM\JoinTable * * @Groups({"entries_for_user", "export_all"}) @@ -245,7 +254,7 @@ class Entry /** * Set isArchived. * - * @param string $isArchived + * @param bool $isArchived * * @return Entry */ @@ -259,13 +268,23 @@ class Entry /** * Get isArchived. * - * @return string + * @return bool */ public function isArchived() { return $this->isArchived; } + /** + * @VirtualProperty + * @SerializedName("is_archived") + * @Groups({"entries_for_user", "export_all"}) + */ + public function is_Archived() + { + return (int) $this->isArchived(); + } + public function toggleArchive() { $this->isArchived = $this->isArchived() ^ 1; @@ -276,7 +295,7 @@ class Entry /** * Set isStarred. * - * @param string $isStarred + * @param bool $isStarred * * @return Entry */ @@ -290,13 +309,23 @@ class Entry /** * Get isStarred. * - * @return string + * @return bool */ public function isStarred() { return $this->isStarred; } + /** + * @VirtualProperty + * @SerializedName("is_starred") + * @Groups({"entries_for_user", "export_all"}) + */ + public function is_Starred() + { + return (int) $this->isStarred(); + } + public function toggleStar() { $this->isStarred = $this->isStarred() ^ 1; @@ -336,6 +365,33 @@ class Entry return $this->user; } + /** + * @VirtualProperty + * @SerializedName("user_name") + */ + public function getUserName() + { + return $this->user->getUserName(); + } + + /** + * @VirtualProperty + * @SerializedName("user_email") + */ + public function getUserEmail() + { + return $this->user->getEmail(); + } + + /** + * @VirtualProperty + * @SerializedName("user_id") + */ + public function getUserId() + { + return $this->user->getId(); + } + /** * @return string */ @@ -366,19 +422,19 @@ class Entry } /** - * @return string + * @return ArrayCollection */ - public function getComments() + public function getAnnotations() { - return $this->comments; + return $this->annotations; } /** - * @param string $comments + * @param Annotation $annotation */ - public function setComments($comments) + public function setAnnotation(Annotation $annotation) { - $this->comments = $comments; + $this->annotations[] = $annotation; } /**