예제 #1
0
 protected function addActions(CompiledResourceDefinitionInterface $resourceDefinition, array $which, $instance = null)
 {
     if ($this->context->wantsMetadata() === false) {
         return;
     }
     $actions = $resourceDefinition->getActions();
     $links = [];
     $this->data['_actions'] = [];
     foreach ($actions as $action) {
         if ($action->getType() === ActionDefinition::TYPE_COLLECTION) {
             $this->addFiltersToLink('self', $action);
         }
         if (in_array($action->getType(), $which) === false || $action->isAffordanceAvailable($this->resource, $instance) === false) {
             continue;
         }
         $links = array_merge($links, $this->addAction($resourceDefinition, $action, $instance));
     }
     foreach ($links as $rel => $routeName) {
         $this->addRestedLink($rel, $routeName);
     }
 }
예제 #2
0
 /**
  * {@inheritdoc}
  */
 public function registerResourceDefinition($routeName, CompiledResourceDefinitionInterface $resourceDefinition)
 {
     $this->resourceDefinitions[$routeName] = $resourceDefinition;
     foreach ($resourceDefinition->getActions() as $action) {
         $this->resourceDefinitionsByModel[$action->getTransformMapping()->getModelClass()] = $resourceDefinition;
     }
 }