public function executeWrite(AgaviRequestDataHolder $request_data)
 {
     $size = $request_data->getParameter('size', 1);
     $aggregate_root_type = $request_data->getParameter('type');
     $fixture_service = $this->getServiceLocator()->getFixtureService();
     $type_prefix = $aggregate_root_type->getPrefix();
     $documents[$type_prefix] = $fixture_service->generate($type_prefix, $size);
     $json = json_encode($documents, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
     $errors = [];
     $report = [];
     $success = true;
     if ($request_data->hasParameter('target')) {
         $target = $request_data->getParameter('target');
         if (is_writable(dirname($target))) {
             $success = file_put_contents($target, $json, LOCK_EX) !== false;
             if (!$success) {
                 $errors[] = sprintf('failed to write to: %s', $target);
             }
         } else {
             $errors[] = sprintf('target filename is not writable: %s', $target);
             $success = false;
         }
     } else {
         $this->setAttribute('data', $json);
     }
     $this->setAttribute('report', $report);
     $this->setAttribute('size', count($documents[$type_prefix]));
     if (!$success) {
         $this->setAttribute('errors', $errors);
         return 'Error';
     }
     return 'Success';
 }
 /**
  * Creates the right data structure to call the cronk script interface
  * @param AgaviRequestDataHolder $rd
  * @return array
  */
 public static function makeRequestDataStruct(AgaviRequestDataHolder $rd)
 {
     $data = array();
     foreach (self::$requestAttributes as $attr) {
         if ($rd->hasParameter($attr)) {
             $data[$attr] = $rd->getParameter($attr);
         }
     }
     return $data;
 }
 public function executeWrite(AgaviRequestDataHolder $request_data)
 {
     if ($request_data->hasParameter('command')) {
         $create_command = $request_data->getParameter('command');
         $this->dispatchCommand($create_command);
         $this->setAttribute('command', $create_command);
     } else {
         $this->setAttribute('resource_type', $this->getProjectionType());
     }
     return 'Success';
 }
 public function executeWrite(AgaviRequestDataHolder $request_data)
 {
     $service_locator = $this->getServiceLocator();
     $migration_service = $service_locator->getMigrationService();
     $migrated_targets = [];
     if (!$request_data->hasParameter('target') || MigrationTargetValidator::ALL_TARGETS === $request_data->getParameter('target')) {
         if ($request_data->hasParameter('version')) {
             throw new RuntimeError("Version parameter only supported together with a valid target.");
         }
         foreach ($migration_service->getMigrationTargetMap() as $target_name => $migration_target) {
             if ($migration_target->isActivated()) {
                 $migrated_targets[$target_name] = ['target' => $migration_target, 'migrations' => $migration_service->migrate($target_name)];
             }
         }
     } else {
         $target_name = $request_data->getParameter('target');
         $target_version = $request_data->getParameter('version');
         $migrated_targets[$target_name] = ['target' => $migration_service->getMigrationTarget($target_name), 'migrations' => $migration_service->migrate($target_name, $target_version)];
     }
     $this->setAttribute('migrated_targets', $migrated_targets);
     return 'Success';
 }
 public function executeConsole(AgaviRequestDataHolder $request_data)
 {
     $state_machine = $request_data->getParameter('subject');
     $svg = $this->renderSubject($state_machine);
     if ($request_data->hasParameter('output')) {
         $output = $request_data->getParameter('output');
         file_put_contents($output, $svg);
         $message = sprintf('-> successfully generated visualization for "%s"' . PHP_EOL . '-> image was generated here: %s', $state_machine->getName(), realpath($output));
         return $this->cliMessage($message);
     } else {
         return $svg;
     }
 }
 public function executeJson(AgaviRequestDataHolder $rd)
 {
     $factory = $this->getContext()->getModel('JasperSoapFactory', 'Reporting', array('jasperconfig' => $rd->getParameter('jasperconfig')));
     $scheduler = $this->getContext()->getModel('JasperScheduler', 'Reporting', array('client' => $factory->getSoapClientForWSDL(Reporting_JasperSoapFactoryModel::SERVICE_SCHEDULER), 'jasperconfig' => $rd->getParameter('jasperconfig'), 'uri' => $rd->getParameter('uri')));
     $parameters = $this->getContext()->getModel('JasperParameterStruct', 'Reporting', array('client' => $factory->getSoapClientForWSDL(Reporting_JasperSoapFactoryModel::SERVICE_REPOSITORY), 'jasperconfig' => $rd->getParameter('jasperconfig'), 'uri' => $rd->getParameter('uri'), 'filter' => 'inputControl'));
     $stdClass = new stdClass();
     if ($rd->hasParameter('job')) {
         $stdClass->job = $scheduler->getJobDetail($rd->getParameter('job'));
     } else {
         $stdClass->job = null;
     }
     $stdClass->inputControls = $parameters->getJsonStructure();
     return json_encode($stdClass);
 }
 public function executeConsole(\AgaviRequestDataHolder $request_data)
 {
     $permissions = $this->getAttribute('permissions');
     if (empty($permissions)) {
         return "No permissions found!\n";
     }
     if ($request_data->hasParameter('role')) {
         echo PHP_EOL . '# Role "' . $request_data->getParameter('role') . '" has the following permissions:' . PHP_EOL;
     } else {
         echo PHP_EOL . "All permissions:" . PHP_EOL;
     }
     foreach ($this->getAttribute('permissions') as $scope => $permission_list) {
         echo PHP_EOL . "- Scope: " . $scope . PHP_EOL . PHP_EOL . $permission_list;
     }
     if ($request_data->hasParameter('role')) {
         foreach ($this->getAttribute('parent_permissions') as $parent_role => $permission_map) {
             echo PHP_EOL . PHP_EOL . '----------' . PHP_EOL . '# Following permission where inherited from "' . $parent_role . '": ' . PHP_EOL;
             foreach ($permission_map as $scope => $permission_list) {
                 echo PHP_EOL . "- Scope: " . $scope . PHP_EOL . PHP_EOL . $permission_list;
             }
         }
     }
     return PHP_EOL;
 }
 public function executeRead(AgaviRequestDataHolder $request_data)
 {
     $service_locator = $this->getServiceLocator();
     $migration_service = $service_locator->getMigrationService();
     $show_only = $request_data->getParameter('only', 'all');
     $migration_targets = [];
     if (!$request_data->hasParameter('target')) {
         foreach ($migration_service->getMigrationTargetMap() as $target_name => $migration_target) {
             $migration_targets[$target_name] = ['target' => $migration_target, 'migrations' => $this->getMigrationsForTarget($target_name, $show_only)];
         }
     } else {
         $target_name = $request_data->getParameter('target');
         $migration_targets[$target_name] = ['target' => $migration_service->getMigrationTarget($target_name), 'migrations' => $this->getMigrationsForTarget($target_name, $show_only)];
     }
     $this->setAttribute('only', $show_only);
     $this->setAttribute('migration_targets', $migration_targets);
     return 'Success';
 }