/**
  * @param \App\Satis\ConfigManager $configManager
  * @param string $repositoryId
  */
 public function delete(ConfigManager $configManager, $repositoryId)
 {
     try {
         $configManager->deleteRepository($repositoryId);
         Response::json()->send();
     } catch (RepositoryNotFoundException $e) {
         Response::json()->setStatusCode(404)->send();
     } catch (PackageBuildFailedException $e) {
         Response::json($e->getMessage())->setStatusCode(500)->send();
     }
 }
 /**
  * @param \JMS\Serializer\Serializer $serializer
  * @param \App\Satis\Model\ControlPanelConfig $controlPanelConfig
  * @param \App\Satis\ConfigManager $configManager
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function index(Serializer $serializer, ControlPanelConfig $controlPanelConfig, ConfigManager $configManager)
 {
     try {
         $controlPanelConfig->setConfig($configManager->getDefinition())->setRepositoryTypes(config('satis.repository_types'))->isLoaded(true);
     } catch (Exception $e) {
         $message = $e->getMessage();
         if ($e instanceof FileNotFoundException) {
             $message = trans('satis.not_found');
         }
         $controlPanelConfig->setMessage($message)->isLoaded(false);
     }
     $controlPanelConfig->setNodeServer(config('satis.node'));
     $controlPanelConfig->isLocked($configManager->isBuilding());
     return view('index', ['satis' => $serializer->serialize($controlPanelConfig, 'json'), 'webpackDevServer' => config('satis.webpack_dev_server'), 'nodeServer' => config('satis.node.host') . ':' . config('satis.node.port')]);
 }
 /**
  * Get repository ID
  *
  * @return string
  */
 public function getId()
 {
     return ConfigManager::nameToId($this->name);
 }
 /**
  * Execute the console command.
  *
  * @return void
  */
 public function handle()
 {
     $this->info('Creating mirrored configuration files.');
     $this->configManager->setDisableBuild(true)->save();
 }