/**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     parent::handle();
     $controllerGenerator = new APIControllerGenerator($this->commandData);
     $controllerGenerator->generate();
     $this->performPostActions();
 }
 /**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     parent::handle();
     $this->initAPIGeneratorCommandData();
     if (!$this->commandData->options['fromTable']) {
         $migrationGenerator = new MigrationGenerator($this->commandData);
         $migrationGenerator->generate();
     }
     $modelGenerator = new ModelGenerator($this->commandData);
     $modelGenerator->generate();
     $repositoryGenerator = new RepositoryGenerator($this->commandData);
     $repositoryGenerator->generate();
     $controllerGenerator = new APIControllerGenerator($this->commandData);
     $controllerGenerator->generate();
     $requestGenerator = new APIRequestGenerator($this->commandData);
     $requestGenerator->generate();
     $routesGenerator = new APIRoutesGenerator($this->commandData);
     $routesGenerator->generate();
     if ($this->commandData->getAddOn('tests')) {
         $repositoryTestGenerator = new RepositoryTestGenerator($this->commandData);
         $repositoryTestGenerator->generate();
         $testTraitGenerator = new TestTraitGenerator($this->commandData);
         $testTraitGenerator->generate();
         $apiTestGenerator = new ApiTestGenerator($this->commandData);
         $apiTestGenerator->generate();
     }
     $this->performPostActionsWithMigration();
 }
 /**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     if (!in_array($this->argument('type'), [CommandData::$COMMAND_TYPE_API, CommandData::$COMMAND_TYPE_SCAFFOLD, CommandData::$COMMAND_TYPE_API_SCAFFOLD])) {
         $this->error('invalid rollback type');
     }
     $this->commandData = new CommandData($this, $this->argument('type'));
     $this->commandData->config->mName = $this->commandData->modelName = $this->argument('model');
     $this->commandData->config->prepareOptions($this->commandData, ['tableName', 'prefix']);
     $this->commandData->config->prepareAddOns();
     $this->commandData->config->prepareModelNames();
     $this->commandData->config->prepareTableName();
     $this->commandData->config->loadPaths();
     $this->commandData->config->loadNamespaces($this->commandData);
     $this->commandData = $this->commandData->config->loadDynamicVariables($this->commandData);
     $migrationGenerator = new MigrationGenerator($this->commandData);
     $migrationGenerator->rollback();
     $modelGenerator = new ModelGenerator($this->commandData);
     $modelGenerator->rollback();
     $repositoryGenerator = new RepositoryGenerator($this->commandData);
     $repositoryGenerator->rollback();
     $requestGenerator = new APIRequestGenerator($this->commandData);
     $requestGenerator->rollback();
     $controllerGenerator = new APIControllerGenerator($this->commandData);
     $controllerGenerator->rollback();
     $routesGenerator = new APIRoutesGenerator($this->commandData);
     $routesGenerator->rollback();
     $requestGenerator = new RequestGenerator($this->commandData);
     $requestGenerator->rollback();
     $controllerGenerator = new ControllerGenerator($this->commandData);
     $controllerGenerator->rollback();
     $viewGenerator = new ViewGenerator($this->commandData);
     $viewGenerator->rollback();
     $routeGenerator = new RoutesGenerator($this->commandData);
     $routeGenerator->rollback();
     if ($this->commandData->getAddOn('tests')) {
         $repositoryTestGenerator = new RepositoryTestGenerator($this->commandData);
         $repositoryTestGenerator->rollback();
         $testTraitGenerator = new TestTraitGenerator($this->commandData);
         $testTraitGenerator->rollback();
         $apiTestGenerator = new APITestGenerator($this->commandData);
         $apiTestGenerator->rollback();
     }
     if ($this->commandData->config->getAddOn('menu.enabled')) {
         $menuGenerator = new MenuGenerator($this->commandData);
         $menuGenerator->rollback();
     }
     $this->info('Generating autoload files');
     $this->composer->dumpOptimized();
 }
 public function generateAPIItems()
 {
     if (!$this->isSkip('requests') and !$this->isSkip('api_requests')) {
         $requestGenerator = new APIRequestGenerator($this->commandData);
         $requestGenerator->generate();
     }
     if (!$this->isSkip('controllers') and !$this->isSkip('api_controller')) {
         $controllerGenerator = new APIControllerGenerator($this->commandData);
         $controllerGenerator->generate();
     }
     if (!$this->isSkip('routes') and !$this->isSkip('api_routes')) {
         $routesGenerator = new APIRoutesGenerator($this->commandData);
         $routesGenerator->generate();
     }
     if (!$this->isSkip('tests') and $this->commandData->getAddOn('tests')) {
         $repositoryTestGenerator = new RepositoryTestGenerator($this->commandData);
         $repositoryTestGenerator->generate();
         $testTraitGenerator = new TestTraitGenerator($this->commandData);
         $testTraitGenerator->generate();
         $apiTestGenerator = new APITestGenerator($this->commandData);
         $apiTestGenerator->generate();
     }
 }