Exemple #1
0
 /**
  * @param $id
  * @return ExecutionResult
  */
 public function execute($id)
 {
     if (!$this->access->isPermitted($id)) {
         return new NotPermittedResult();
     }
     try {
         $action = $this->actions->getAction($id);
         list($params, $missing) = $this->readParameters($action);
         if (!empty($missing)) {
             return new MissingParametersResult($missing);
         }
         if (!$this->access->isExecutionPermitted($id, $params)) {
             return new NotPermittedResult();
         }
         $returned = $action->execute($params);
         if (is_null($returned)) {
             return new NoResult();
         } else {
             if ($returned instanceof ExecutionResult) {
                 return $returned;
             } else {
                 return new ValueResult($returned);
             }
         }
     } catch (\Exception $e) {
         return new FailedResult($e);
     }
 }