Ejemplo n.º 1
0
 public function handle()
 {
     $this->commandData->modelName = $this->argument('model');
     $this->commandData->useSoftDelete = $this->option('softDelete');
     $this->commandData->fieldsFile = $this->option('fieldsFile');
     $this->commandData->paginate = $this->option('paginate');
     $this->commandData->tableName = $this->option('tableName');
     $this->commandData->skipMigration = $this->option('skipMigration');
     $this->commandData->fromTable = $this->option('fromTable');
     $this->commandData->rememberToken = $this->option('rememberToken');
     if ($this->commandData->fromTable) {
         if (!$this->commandData->tableName) {
             $this->error('tableName required with fromTable option.');
             exit;
         }
     }
     if ($this->commandData->paginate <= 0) {
         $this->commandData->paginate = 10;
     }
     $this->commandData->initVariables();
     $this->commandData->addDynamicVariable('$NAMESPACE_APP$', $this->getLaravel()->getNamespace());
     if ($this->commandData->fieldsFile) {
         $fileHelper = new FileHelper();
         try {
             if (file_exists($this->commandData->fieldsFile)) {
                 $filePath = $this->commandData->fieldsFile;
             } else {
                 $filePath = base_path($this->commandData->fieldsFile);
             }
             if (!file_exists($filePath)) {
                 $this->commandData->commandObj->error('Fields file not found');
                 exit;
             }
             $fileContents = $fileHelper->getFileContents($filePath);
             $fields = json_decode($fileContents, true);
             $this->commandData->inputFields = GeneratorUtils::validateFieldsFile($fields);
         } catch (Exception $e) {
             $this->commandData->commandObj->error($e->getMessage());
             exit;
         }
     } elseif ($this->commandData->fromTable) {
         $tableFieldsGenerator = new TableFieldsGenerator($this->commandData->tableName);
         $this->commandData->inputFields = $tableFieldsGenerator->generateFieldsFromTable();
     } else {
         $this->commandData->inputFields = $this->commandData->getInputFields();
     }
 }
 /**
  * Initialize routes group based on route integration.
  */
 private function initAPIRoutes()
 {
     $path = Config::get('generator.path_routes', app_path('Http/routes.php'));
     $fileHelper = new FileHelper();
     $routeContents = $fileHelper->getFileContents($path);
     $useDingo = Config::get('generator.use_dingo_api', false);
     if ($useDingo) {
         $template = 'dingo_api_routes_group';
     } else {
         $template = 'api_routes_group';
     }
     $templateHelper = new TemplatesHelper();
     $templateData = $templateHelper->getTemplate($template, 'routes');
     $templateData = $this->fillTemplate($templateData);
     $fileHelper->writeFile($path, $routeContents . "\n\n" . $templateData);
     $this->comment("\nAPI group added to routes.php");
 }