/** * create - Create a site * * @param array $data * * @return mixed|JsonModel */ public function create($data) { /* ACCESS CHECK */ if (!$this->rcmIsAllowed('sites', 'admin')) { $this->getResponse()->setStatusCode(Response::STATUS_CODE_401); return $this->getResponse(); } /* */ $inputFilter = new SiteInputFilter(); $inputFilter->setData($data); if (!$inputFilter->isValid()) { return new ApiJsonModel([], 1, 'Some values are missing or invalid.', $inputFilter->getMessages()); } $data = $inputFilter->getValues(); $siteManager = $this->getSiteManager(); try { $data = $siteManager->prepareSiteData($data); /** @var \Rcm\Repository\Domain $domainRepo */ $domainRepo = $this->getEntityManager()->getRepository('\\Rcm\\Entity\\Domain'); $data['domain'] = $domainRepo->createDomain($data['domainName']); } catch (\Exception $e) { return new ApiJsonModel(null, 1, $e->getMessage()); } /** @var \Rcm\Entity\Site $newSite */ $newSite = new Site(); $newSite->populate($data); // make sure we don't have a siteId $newSite->setSiteId(null); try { $newSite = $siteManager->createSite($newSite); } catch (\Exception $e) { return new ApiJsonModel(null, 1, $e->getMessage()); } return new ApiJsonModel($newSite, 0, 'Success'); }
/** * getMockSite * * @param $data * * @return Site */ public function getMockSite($data) { $site = new Site(); $site->populate($data); return $site; }