/** * @VirtualProperty * @Groups({"Device", "Message","Conversation"}) * @SerializedName("Participants") * @XmlList(inline = false, entry = "Participant") * @Type("ArrayCollection<AppBundle\Entity\Contracts\UserConversationUserContract>") * * @return Collection */ public function getParticipants() { return parent::getParticipants(); }
/** * Function: subscribeUserToConversation * * @param \AppBundle\Entity\User $user * @param \AppBundle\Entity\Conversation $conversation * * @param bool $force * * @return \AppBundle\Entity\UserConversation|object * @author Stefanos Bozionelos */ private function subscribeUserToConversation(User $user, Conversation $conversation, $force = false) { $em = $this->getDoctrine()->getManager(); $userConversationRepository = $em->getRepository('AppBundle:UserConversation'); $user_conversation = $userConversationRepository->findOneBy(array('user' => $user->getId(), 'conversation' => $conversation->getId())); if (isset($user_conversation)) { if ($conversation->getParticipants()->count() == 2 && $user_conversation->getUserId() == $user->getId() || $force) { $user_conversation->setRegistered(true); $em->persist($user_conversation); $em->flush(); } return $user_conversation; } $user_conversation = new UserConversation(); $user_conversation->setUser($user); $user_conversation->setConversation($conversation); $user_conversation->setRegistered(true); $conversation->addParticipant($user_conversation); $em->persist($user_conversation); $em->flush(); return $user_conversation; }
/** * @VirtualProperty * @Groups({"Device", "Message", "Conversation"}) * @SerializedName("last_update") * @Type("DateTime<'Y-m-d\TH:i:sO'>") * @XmlAttribute * @return \DateTime */ public function getLastupdate() { return parent::getLastupdate(); }