%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/Command/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/Command/ExportProject.php |
<?php
/**
* Nextcloud - Cospend
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Julien Veyssier <julien-nc@posteo.net>
* @copyright Julien Veyssier 2019
*/
namespace OCA\Cospend\Command;
use OC\Core\Command\Base;
use OCA\Cospend\Db\ProjectMapper;
use OCA\Cospend\Service\ProjectService;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class ExportProject extends Base {
public function __construct(
private ProjectService $projectService,
private ProjectMapper $projectMapper,
) {
parent::__construct();
}
protected function configure() {
$this->setName('cospend:export-project')
->setDescription('Export a project to CSV')
->addArgument(
'project_id',
InputArgument::REQUIRED,
'The id of the project you want to export'
)
->addArgument(
'filename',
InputArgument::OPTIONAL,
'The name of the exported file'
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
$projectId = $input->getArgument('project_id');
$name = $input->getArgument('filename');
$dbProject = $this->projectMapper->find($projectId);
if ($dbProject !== null) {
$result = $this->projectService->exportCsvProject($projectId, $dbProject->getUserid(), $name);
if (array_key_exists('path', $result)) {
$output->writeln(
'Project "'.$projectId.'" exported in "'.$result['path'].
'" of user "'.$dbProject->getUserid().'" storage'
);
} else {
$output->writeln('Error: '.$result['message']);
}
} else {
$output->writeln('Project '.$projectId.' not found');
}
return 0;
}
}