1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-06 13:16:45 +02:00

feat(console): improve entries:create logic

This commit is contained in:
Awilum
2022-05-01 16:27:41 +03:00
parent d87d0b7992
commit 8f86b6169d

View File

@@ -19,8 +19,9 @@ namespace Flextype\Console\Commands\Entries;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Console\Input\InputArgument;
use function Thermage\div;
use function Thermage\renderToString;
class EntriesCreateCommand extends Command
{
@@ -34,15 +35,34 @@ class EntriesCreateCommand extends Command
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$id = $input->getArgument('id');
$data = $input->getArgument('data');
$data = $input->getArgument('data') ? serializers()->json()->decode($input->getArgument('data')) : [];
if ($data) {
if (strings($data)->isJson()) {
$dataToSave = serializers()->json()->decode($data);
} else {
parse_str($data, $dataToSave);
}
} else {
$dataToSave = [];
}
if (entries()->create($input->getArgument('id'), $data)) {
$io->success('Entry ' . $input->getArgument('id') . ' created.');
if (entries()->create($id, $dataToSave)) {
$output->write(
renderToString(
div('Success: Entry [b]' . $id . '[/b] created.',
'bg-success px-2 py-1')
)
);
return Command::SUCCESS;
} else {
$io->error('Entry ' . $input->getArgument('id') . ' wasn\'t created.');
$output->write(
renderToString(
div('Failure: Entry [b]' . $id . '[/b] wasn\'t created.',
'bg-danger px-2 py-1')
)
);
return Command::FAILURE;
}
}