Esempio n. 1
0
 /**
  * Executes a subcommand
  *
  * @param string          $subcommand
  * @param array           $arguments
  * @param OutputInterface $output
  */
 public function executeSubCommand($subcommand, $arguments, OutputInterface $output)
 {
     try {
         switch ($subcommand) {
             case 'create':
                 $databaseIdentifier = array_shift($arguments);
                 $options = $arguments;
                 if (!$databaseIdentifier) {
                     throw new \InvalidArgumentException('Missing database identifier argument', 1412524227);
                 }
                 $database = $this->coordinator->createDatabase($databaseIdentifier, $options);
                 if ($database) {
                     $output->writeln(sprintf('<info>Created database %s</info>', $databaseIdentifier));
                 }
                 break;
             case 'drop':
                 $databaseIdentifier = array_shift($arguments);
                 if (!$databaseIdentifier) {
                     throw new \InvalidArgumentException('Missing database identifier argument', 1412524227);
                 }
                 $this->coordinator->dropDatabase($databaseIdentifier);
                 $output->writeln(sprintf('<info>Dropped database %s</info>', $databaseIdentifier));
                 break;
             case 'list':
             case 'll':
                 $databases = $this->coordinator->listDatabases();
                 if ($databases) {
                     $output->writeln('<info>Databases:</info>');
                     foreach ($databases as $databaseIdentifier) {
                         $output->writeln($databaseIdentifier);
                     }
                 } else {
                     $output->writeln('<info>No databases found</info>');
                 }
                 break;
             default:
                 throw new \InvalidArgumentException(sprintf('Undefined sub command "%s"', $subcommand), 1412525230);
         }
     } catch (\Exception $exception) {
         $output->writeln('<error>' . $exception->getMessage() . '</error>');
     }
 }
Esempio n. 2
0
 /**
  * Deletes a Document instance for the given RequestInfo
  *
  * @param RequestInfo $requestInfo
  * @return HandlerResultInterface
  */
 public function delete(RequestInfo $requestInfo)
 {
     $database = $this->getDatabaseForRequestInfo($requestInfo);
     if (!$database) {
         throw new InvalidRequestParameterException(sprintf('Database with identifier "%s" not found', $requestInfo->getDatabaseIdentifier()), 1413035859);
     }
     //		if (!$requestInfo->getDataIdentifier()) throw new InvalidRequestParameterException('Document identifier is missing', 1413035855);
     if ($requestInfo->getDataIdentifier()) {
         $document = $this->getDataForRequest($requestInfo);
         if (!$document) {
             throw new InvalidRequestParameterException(sprintf('Document with identifier "%s" not found in database "%s"', $requestInfo->getDataIdentifier(), $requestInfo->getDatabaseIdentifier()), 1413035855);
         }
         $database->remove($document);
         $this->eventEmitter->emit(Event::DOCUMENT_DELETED, array($document));
         return new HandlerResult(204, sprintf('Document "%s" deleted', $requestInfo->getDataIdentifier()));
     }
     $databaseIdentifier = $database->getIdentifier();
     $this->coordinator->dropDatabase($databaseIdentifier);
     $this->eventEmitter->emit(Event::DATABASE_DELETED, array($database));
     return new HandlerResult(204, sprintf('Database "%s" deleted', $databaseIdentifier));
 }