diff --git a/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php b/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php
index e76796e8b7..7cf2d91ced 100644
--- a/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php
+++ b/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php
@@ -24,20 +24,30 @@ class ListCollectionCommand extends Command
parent::__construct('collection:list');
$this->setDescription('List all collection in Phraseanet')
->addOption('databox_id', 'd', InputOption::VALUE_REQUIRED, 'The id of the databox to list collection')
+ ->addOption('jsonformat', null, InputOption::VALUE_NONE, 'Output in json format')
->setHelp('');
return $this;
}
protected function doExecute(InputInterface $input, OutputInterface $output)
{
try {
- $databox = $this->container->findDataboxById($input->getOption('databox_id'));
- $collections = $this->listDataboxCollections($databox);
+ $jsonformat = $input->getOption('jsonformat');
+ $databox = $this->container->findDataboxById($input->getOption('databox_id'));
+ $collections = $this->listDataboxCollections($databox);
+
+ if ($jsonformat) {
+ foreach ($collections as $collection) {
+ $collectionList[] = array_combine(['id local for API', 'id distant', 'name','label','status','total records'], $collection);
+ }
+ echo json_encode($collectionList);
+ } else {
+ $table = $this->getHelperSet()->get('table');
+ $table
+ ->setHeaders(['id local for API', 'id distant', 'name','label','status','total records'])
+ ->setRows($collections)
+ ->render($output);
+ }
- $table = $this->getHelperSet()->get('table');
- $table
- ->setHeaders(['id local for API', 'id distant', 'name','label','status','total records'])
- ->setRows($collections)
- ->render($output);
} catch (\Exception $e) {
$output->writeln("{$e->getMessage()}");
}
diff --git a/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php b/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php
index 49775437d5..92a30435fe 100644
--- a/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php
+++ b/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php
@@ -13,6 +13,7 @@ namespace Alchemy\Phrasea\Command\Databox;
use Alchemy\Phrasea\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class ListDataboxCommand extends Command
@@ -25,6 +26,7 @@ class ListDataboxCommand extends Command
parent::__construct('databox:list');
$this->setDescription('List all databox in Phraseanet')
+ ->addOption('jsonformat', null, InputOption::VALUE_NONE, 'Output in json format')
->setHelp('');
return $this;
@@ -33,15 +35,23 @@ class ListDataboxCommand extends Command
protected function doExecute(InputInterface $input, OutputInterface $output)
{
try {
+ $jsonformat = $input->getOption('jsonformat');
$databoxes = array_map(function (\databox $databox) {
return $this->listDatabox($databox);
}, $this->container->getApplicationBox()->get_databoxes());
- $table = $this->getHelperSet()->get('table');
- $table
- ->setHeaders(['id', 'name', 'alias'])
- ->setRows($databoxes)
- ->render($output);
+ if ($jsonformat) {
+ foreach ($databoxes as $databox) {
+ $databoxList[] = array_combine(['id', 'name', 'alias'], $databox);
+ }
+ echo json_encode($databoxList);
+ } else {
+ $table = $this->getHelperSet()->get('table');
+ $table
+ ->setHeaders(['id', 'name', 'alias'])
+ ->setRows($databoxes)
+ ->render($output);
+ }
} catch (\Exception $e) {
$output->writeln('Listing databox failed : '.$e->getMessage().'');