/** * Inject relational links into a Module resource * * @param Model\ModuleEntity $resource * @param \Zend\Mvc\MvcEvent $e */ public function injectModuleCollectionRelationalLinks(Model\ModuleEntity $resource, $e) { $asArray = $resource->getArrayCopy(); $module = $asArray['name']; $rest = $asArray['rest']; $rpc = $asArray['rpc']; unset($asArray['rest']); unset($asArray['rpc']); $halEntity = new Entity($asArray, $module); $links = $halEntity->getLinks(); $links->add(Link::factory(array('rel' => 'self', 'route' => array('name' => 'zf-apigility/api/module', 'params' => array('name' => $module))))); $this->injectLinksForServicesByType('authorization', array(), $links, $module); $this->injectLinksForServicesByType('rest', $rest, $links, $module); $this->injectLinksForServicesByType('rpc', $rpc, $links, $module); $e->setParam('entity', $halEntity); }
/** * @param Model\ModuleEntity $module * @param $links * @param HalJsonModel $model * @return void */ private function injectModuleResourceRelationalLinks(Model\ModuleEntity $module, $links, HalJsonModel $model) { $moduleData = $module->getArrayCopy(); $moduleName = $moduleData['name']; $this->injectLinksByType('authorization', $links, $moduleName); $this->injectLinksByType('rest', $links, $moduleName); unset($moduleData['rest']); $this->injectLinksByType('rpc', $links, $moduleName); unset($moduleData['rpc']); $module = new Model\ModuleEntity($module->getNamespace(), [], [], $module->isVendor()); $module->exchangeArray($moduleData); $replacement = new Entity($module, $moduleName); $replacement->setLinks($links); $model->setPayload($replacement); }