/** * Determines the action method and assures that the method exists. * * @return string The action method name * @throws \TYPO3\Flow\Mvc\Exception\NoSuchActionException if the action specified in the request object does not exist (and if there's no default action either). */ protected function resolveActionMethodName() { if ($this->request->getControllerActionName() === 'index') { $actionName = 'index'; switch ($this->request->getHttpRequest()->getMethod()) { case 'HEAD': case 'GET': $actionName = $this->request->hasArgument($this->resourceArgumentName) ? 'show' : 'list'; break; case 'POST': $actionName = 'create'; break; case 'PUT': if (!$this->request->hasArgument($this->resourceArgumentName)) { $this->throwStatus(400, NULL, 'No resource specified'); } $actionName = 'update'; break; case 'DELETE': if (!$this->request->hasArgument($this->resourceArgumentName)) { $this->throwStatus(400, NULL, 'No resource specified'); } $actionName = 'delete'; break; } $this->request->setControllerActionName($actionName); } return parent::resolveActionMethodName(); }
/** * Determines the action method and assures that the method exists. * * @return string The action method name * @throws NoSuchActionException if the action specified in the request object does not exist (and if there's no default action either). */ protected function resolveActionMethodName() { if ($this->request->hasArgument('resource') === false) { $this->throwStatus(400); } $this->endpoint = new EndpointService($this->request->getArgument('resource')); if ($this->request->getControllerActionName() === 'index') { $actionName = 'index'; switch ($this->request->getHttpRequest()->getMethod()) { case 'HEAD': case 'GET': if ($this->request->hasArgument('resource') && $this->request->hasArgument('identifier')) { $actionName = 'show'; } else { $actionName = 'index'; } break; case 'POST': case 'PUT': case 'DELETE': throw new NoSuchActionException('Not implemented currently', 1447800455); break; } $this->request->setControllerActionName($actionName); } return parent::resolveActionMethodName(); }