Skip to content

Commit 5d968e2

Browse files
committed
Use ConfigProvider in ProcessQueueCommand
1 parent 3ed373c commit 5d968e2

File tree

4 files changed

+61
-11
lines changed

4 files changed

+61
-11
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpList\Core\Domain\Configuration\Model;
6+
7+
enum ConfigOption: string
8+
{
9+
case MaintenanceMode = 'maintenancemode';
10+
case SendSubscribeMessage = 'subscribemessage';
11+
}

src/Domain/Configuration/Service/Manager/ConfigManager.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,6 @@ public function __construct(ConfigRepository $configRepository)
1717
$this->configRepository = $configRepository;
1818
}
1919

20-
public function inMaintenanceMode(): bool
21-
{
22-
$config = $this->getByItem('maintenancemode');
23-
return $config?->getValue() === '1';
24-
}
25-
2620
/**
2721
* Get a configuration item by its key
2822
*/
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpList\Core\Domain\Configuration\Service\Provider;
6+
7+
use InvalidArgumentException;
8+
use PhpList\Core\Domain\Configuration\Model\ConfigOption;
9+
use PhpList\Core\Domain\Configuration\Repository\ConfigRepository;
10+
11+
class ConfigProvider
12+
{
13+
private array $booleanValues = [
14+
ConfigOption::MaintenanceMode,
15+
];
16+
17+
private ConfigRepository $configRepository;
18+
19+
public function __construct(ConfigRepository $configRepository)
20+
{
21+
$this->configRepository = $configRepository;
22+
}
23+
24+
public function isEnabled(ConfigOption $key): bool
25+
{
26+
if (!in_array($key, $this->booleanValues)) {
27+
throw new InvalidArgumentException('Invalid boolean value key');
28+
}
29+
$config = $this->configRepository->findOneBy(['item' => $key->value]);
30+
31+
return $config?->getValue() === '1';
32+
}
33+
34+
/**
35+
* Get configuration value by its key
36+
*/
37+
public function getValue(string $ikey, ?string $default = null): ?string
38+
{
39+
$config = $this->configRepository->findOneBy(['item' => $ikey]);
40+
41+
return $config?->getValue() ?? $default;
42+
}
43+
44+
}

src/Domain/Messaging/Command/ProcessQueueCommand.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
namespace PhpList\Core\Domain\Messaging\Command;
66

77
use DateTimeImmutable;
8-
use PhpList\Core\Domain\Configuration\Service\Manager\ConfigManager;
8+
use PhpList\Core\Domain\Configuration\Model\ConfigOption;
9+
use PhpList\Core\Domain\Configuration\Service\Provider\ConfigProvider;
910
use PhpList\Core\Domain\Messaging\Model\Message\MessageStatus;
1011
use PhpList\Core\Domain\Messaging\Repository\MessageRepository;
1112
use PhpList\Core\Domain\Messaging\Service\MessageProcessingPreparator;
@@ -28,23 +29,23 @@ class ProcessQueueCommand extends Command
2829
private LockFactory $lockFactory;
2930
private MessageProcessingPreparator $messagePreparator;
3031
private CampaignProcessor $campaignProcessor;
31-
private ConfigManager $configManager;
32+
private ConfigProvider $configProvider;
3233
private TranslatorInterface $translator;
3334

3435
public function __construct(
3536
MessageRepository $messageRepository,
3637
LockFactory $lockFactory,
3738
MessageProcessingPreparator $messagePreparator,
3839
CampaignProcessor $campaignProcessor,
39-
ConfigManager $configManager,
40+
ConfigProvider $configProvider,
4041
TranslatorInterface $translator
4142
) {
4243
parent::__construct();
4344
$this->messageRepository = $messageRepository;
4445
$this->lockFactory = $lockFactory;
4546
$this->messagePreparator = $messagePreparator;
4647
$this->campaignProcessor = $campaignProcessor;
47-
$this->configManager = $configManager;
48+
$this->configProvider = $configProvider;
4849
$this->translator = $translator;
4950
}
5051

@@ -60,7 +61,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
6061
return Command::FAILURE;
6162
}
6263

63-
if ($this->configManager->inMaintenanceMode()) {
64+
if ($this->configProvider->isEnabled(ConfigOption::MaintenanceMode)) {
6465
$output->writeln(
6566
$this->translator->trans('The system is in maintenance mode, stopping. Try again later.')
6667
);

0 commit comments

Comments
 (0)