chore: remove obsolete command
This commit is contained in:
@@ -1129,14 +1129,6 @@ php bin/console app:draft:inspect [--days|-d <n>] [--booking-id|-b <id>] [--dele
|
|||||||
|
|
||||||
Inspects and optionally deletes drafts.
|
Inspects and optionally deletes drafts.
|
||||||
|
|
||||||
#### app:draft:backfill-booking-number
|
|
||||||
|
|
||||||
```bash
|
|
||||||
php bin/console app:draft:backfill-booking-number [--dry-run]
|
|
||||||
```
|
|
||||||
|
|
||||||
Populates missing booking numbers from API.
|
|
||||||
|
|
||||||
#### app:cleanup:log-entries
|
#### app:cleanup:log-entries
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,119 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace App\Command;
|
|
||||||
|
|
||||||
use App\BusProNet\Model\Booking;
|
|
||||||
use App\Repository\BookingEditDraftRepository;
|
|
||||||
use App\Service\BookingEditDataLoader;
|
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
|
||||||
use Symfony\Component\Console\Attribute\AsCommand;
|
|
||||||
use Symfony\Component\Console\Command\Command;
|
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
|
||||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
|
||||||
|
|
||||||
#[AsCommand(
|
|
||||||
name: 'app:draft:backfill-booking-number',
|
|
||||||
description: 'Backfill booking numbers (vorgang) for existing drafts from API',
|
|
||||||
)]
|
|
||||||
class DraftBackfillBookingNumberCommand extends Command
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private readonly BookingEditDraftRepository $draftRepository,
|
|
||||||
private readonly BookingEditDataLoader $dataLoader,
|
|
||||||
private readonly EntityManagerInterface $entityManager,
|
|
||||||
) {
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function configure(): void
|
|
||||||
{
|
|
||||||
$this
|
|
||||||
->addOption('dry-run', null, InputOption::VALUE_NONE, 'Show what would be updated without actually updating');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see Command::execute()
|
|
||||||
*/
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
|
||||||
{
|
|
||||||
$io = new SymfonyStyle($input, $output);
|
|
||||||
$dryRun = $input->getOption('dry-run');
|
|
||||||
|
|
||||||
$drafts = $this->draftRepository->findBy(['bookingNumber' => null]);
|
|
||||||
|
|
||||||
if (0 === \count($drafts)) {
|
|
||||||
$io->success('No drafts without booking number found.');
|
|
||||||
|
|
||||||
return Command::SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
$io->title(sprintf('Processing %d draft(s)', \count($drafts)));
|
|
||||||
|
|
||||||
$updated = 0;
|
|
||||||
$failed = 0;
|
|
||||||
$skipped = 0;
|
|
||||||
|
|
||||||
foreach ($drafts as $draft) {
|
|
||||||
$bookingId = $draft->getBookingId();
|
|
||||||
$user = $draft->getUser();
|
|
||||||
|
|
||||||
$bookingData = $this->dataLoader->fetchBookingData($bookingId, $user);
|
|
||||||
|
|
||||||
if (!$bookingData instanceof Booking) {
|
|
||||||
$io->warning(sprintf('Could not fetch booking %d for user %s', $bookingId, $user->getEmail()));
|
|
||||||
++$failed;
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// bookingNumber maps to BPN XML vorgang
|
|
||||||
$bookingNumber = $bookingData->bookingNumber;
|
|
||||||
|
|
||||||
if (null === $bookingNumber) {
|
|
||||||
$io->warning(sprintf('No booking number (vorgang) found for booking %d', $bookingId));
|
|
||||||
++$skipped;
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($dryRun) {
|
|
||||||
$io->text(sprintf(
|
|
||||||
'[DRY RUN] Would set booking number %d for draft %d (bookingId %d)',
|
|
||||||
$bookingNumber,
|
|
||||||
$draft->getId(),
|
|
||||||
$bookingId
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
$draft->setBookingNumber($bookingNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
++$updated;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === $dryRun) {
|
|
||||||
$this->entityManager->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
$io->newLine();
|
|
||||||
$io->table(
|
|
||||||
['Status', 'Count'],
|
|
||||||
[
|
|
||||||
['Updated', $updated],
|
|
||||||
['Failed (API error)', $failed],
|
|
||||||
['Skipped (no booking number)', $skipped],
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($dryRun) {
|
|
||||||
$io->note('Dry run - no changes were made.');
|
|
||||||
} else {
|
|
||||||
$io->success(sprintf('Updated %d draft(s).', $updated));
|
|
||||||
}
|
|
||||||
|
|
||||||
return Command::SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user