/** * Add invitation into db * * @author Hrayr Shahbazyan * @param array $data * @return int */ public function addInvitation(array $data) { //Get entity manager $em = $this->getEntityManager(); //Get the entity $invitation = new \Company\Entity\Invitation(); //Populate the Invitation's entity $invitation->setUser($this->getServiceLocator()->get('user.service')->getUserById($data['user_id']))->setGroup($this->getServiceLocator()->get('group.service')->getGroupById($data['group_id']))->setUserEmail($data['user_email']); $em->persist($invitation); $em->flush(); return $invitation->getId(); }
/** * Add invitation * * @author Stoyan Rangelov * @param array $data * @return array */ public function addInvitation(array $data) { //Get entity manager $em = $this->getEntityManager(); //Input filters $inputFilter = new \Company\InputFilter\Invitation(); $customFilter = $inputFilter->addInvitation($this->getCompanyRepo()); $inputFilter->setInputFilter($customFilter); $filter = $inputFilter->getInputFilter(); $filter->setData($data); if ($filter->isValid()) { $invitation = new \Company\Entity\Invitation(); $invitation->setEmail($data['email'])->setCompany($this->getCompanyRepo()->find($data['company_id']))->setCode(md5(uniqid()))->setCreatedAt(new \DateTime())->setUpdatedAt(new \DateTime()); $em->persist($invitation); $em->flush(); $result = array(); $userInfo = $this->getUserInformationRepo()->findOneBy(array('user' => $data['user_id'])); $username = $userInfo->getFirstName() . ' ' . $userInfo->getLastName(); //If the user is not registered if (is_null($this->getUsersRepo()->findOneBy(array('login' => $invitation->getEmail())))) { $this->sendInvitationEmail($invitation->getEmail(), $invitation->getCode(), $username); } else { // $email = $invitation->getEmail(); // $sql = "SELECT id, login from user where login = '******'"; // $stmt = $this->getEntityManager()->getConnection()->prepare($sql); // $stmt->execute(); // $userData = $stmt->fetchAll(); // $result['user_id'] = $userData[0]['id']; $this->sendInternalInvitationEmail($invitation->getEmail(), $invitation->getCode(), $username); } $result['status_code'] = 201; $result['invitation_id'] = $invitation->getId(); return $result; } else { return $this->getErrorMessages($filter); } }