Pőcze Bence
dccb34971b
All checks were successful
rvr-nextgen/pipeline/pr-master This commit looks good
54 lines
1.7 KiB
PHP
54 lines
1.7 KiB
PHP
<?php namespace RVR\Cli;
|
|
|
|
use DateTime;
|
|
use RVR\PersistentData\Model\User;
|
|
use Symfony\Component\Console\Command\Command;
|
|
use Symfony\Component\Console\Input\InputArgument;
|
|
use Symfony\Component\Console\Input\InputInterface;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
class AddUserCommand extends Command
|
|
{
|
|
public function configure(): void
|
|
{
|
|
$this->setName('user:add')
|
|
->setDescription('Adding of user.')
|
|
->addArgument('email', InputArgument::REQUIRED, 'Email of user')
|
|
->addArgument('password', InputArgument::REQUIRED, 'Password of user')
|
|
->addArgument('type', InputArgument::OPTIONAL, 'Type of user');;
|
|
}
|
|
|
|
public function execute(InputInterface $input, OutputInterface $output): int
|
|
{
|
|
if (!filter_var($input->getArgument('email'), FILTER_VALIDATE_EMAIL)) {
|
|
$output->writeln('<error>Please provide a valid email address.</error>');
|
|
return 1;
|
|
}
|
|
|
|
$user = new User();
|
|
$user->setEmail($input->getArgument('email'));
|
|
$user->setPlainPassword($input->getArgument('password'));
|
|
$user->setCreatedDate(new DateTime());
|
|
|
|
if ($input->hasArgument('type') && $input->getArgument('type') !== null) {
|
|
$user->setType($input->getArgument('type'));
|
|
}
|
|
|
|
try {
|
|
\Container::$persistentDataManager->saveToDb($user);
|
|
} catch (\Exception $e) {
|
|
$output->writeln('<error>Adding user failed!</error>');
|
|
$output->writeln('');
|
|
|
|
$output->writeln((string) $e);
|
|
$output->writeln('');
|
|
|
|
return 1;
|
|
}
|
|
|
|
$output->writeln('<info>User was successfully added!</info>');
|
|
|
|
return 0;
|
|
}
|
|
}
|