36 lines
1 KiB
PHP
36 lines
1 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\User\InitialAdminCredentialsProvider;
|
|
use App\User\UseCases\EnsureInitialAdmin\EnsureInitialAdmin;
|
|
use App\User\UseCases\EnsureInitialAdmin\EnsureInitialAdminRequest;
|
|
use Illuminate\Console\Command;
|
|
|
|
class EnsureInitialAdminCommand extends Command
|
|
{
|
|
protected $signature = 'rabbi-gerzi:ensure-initial-admin';
|
|
|
|
protected $description = 'Create the configured initial admin if missing';
|
|
|
|
public function __construct(
|
|
private EnsureInitialAdmin $ensureInitialAdmin,
|
|
private InitialAdminCredentialsProvider $credentialsProvider,
|
|
) {
|
|
parent::__construct();
|
|
}
|
|
|
|
public function handle(): int
|
|
{
|
|
$credentials = $this->credentialsProvider->getCredentials();
|
|
|
|
$this->ensureInitialAdmin->execute(new EnsureInitialAdminRequest(
|
|
email: $credentials->getEmail(),
|
|
password: $credentials->getPassword(),
|
|
));
|
|
|
|
$this->info('initial admin is ready');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|