mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch 'fix-notifier-config' into 'master'
Fix notifier legacy configuration and some improvements See merge request Chill-Projet/chill-bundles!784
This commit is contained in:
commit
bc92b52498
6
.changes/unreleased/Fixed-20250121-225838.yaml
Normal file
6
.changes/unreleased/Fixed-20250121-225838.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
kind: Fixed
|
||||
body: Fix legacy configuration processor for notifier component
|
||||
time: 2025-01-21T22:58:38.805800688+01:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
@ -3,3 +3,60 @@
|
||||
* Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider.
|
||||
### Fixed
|
||||
* ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison
|
||||
|
||||
### Warning on configuration of Notifier component
|
||||
|
||||
If installed in an symfony app where the recipes are activated, this configuration should be added automatically:
|
||||
|
||||
```yaml
|
||||
framework:
|
||||
notifier:
|
||||
chatter_transports:
|
||||
texter_transports:
|
||||
ovhcloud: '%env(OVHCLOUD_DSN)%'
|
||||
channel_policy:
|
||||
# use chat/slack, chat/telegram, sms/twilio or sms/nexmo
|
||||
urgent: ['email']
|
||||
high: ['email']
|
||||
medium: ['email']
|
||||
low: ['email']
|
||||
admin_recipients:
|
||||
- { email: admin@example.com }
|
||||
```
|
||||
|
||||
Actually, you should either:
|
||||
|
||||
- remove the configuration of ovhcloud added by the recipe
|
||||
- or remove the previous configuration of chill, to avoid keeping legacy configuration
|
||||
|
||||
#### Remove the added configuration and keep the legacy configuration
|
||||
|
||||
To remove the configuration:
|
||||
|
||||
```diff
|
||||
framework:
|
||||
notifier:
|
||||
chatter_transports:
|
||||
texter_transports:
|
||||
- ovhcloud: '%env(OVHCLOUD_DSN)%'
|
||||
```
|
||||
|
||||
In that case, the previous configuration, which was stored under the `chill_main.short_messages.dsn` will be reconfigured into the Notifier component's configuration.
|
||||
|
||||
#### Properly configure SMS
|
||||
|
||||
You can also properly configure it, as [described in the OVH cloud provider repository](https://github.com/symfony/ovh-cloud-notifier/tree/5.4?tab=readme-ov-file#dsn-example) (where the scheme is `ovhcloud`):
|
||||
|
||||
**NOTE**: You have access to all notifier available with the [Notifier component](https://symfony.com/doc/current/notifier.html#notifier-sms-channel). You are not restricted to use OVH as a provider.
|
||||
|
||||
```diff
|
||||
framework:
|
||||
notifier:
|
||||
chatter_transports:
|
||||
texter_transports:
|
||||
+ ovhcloud: '%env(OVHCLOUD_DSN)%' # this value should be located in a variable, and have `ovhcloud://` as a scheme
|
||||
|
||||
chill_main:
|
||||
- short_messages:
|
||||
- dsn: '%env(string:SHORT_MESSAGE_DSN)%'
|
||||
```
|
||||
|
@ -366,6 +366,17 @@ class ChillMainExtension extends Extension implements
|
||||
*/
|
||||
private function prependNotifierTexterWithLegacyData(ContainerBuilder $container): void
|
||||
{
|
||||
foreach (array_reverse($container->getExtensionConfig('framework')) as $c) {
|
||||
// we look into each configuration for framework. If there is a configuration for
|
||||
// texter_transports in one of them, we don't configure anything else
|
||||
if (null !== $notifConfig = $c['notifier'] ?? null) {
|
||||
if (null !== ($notifConfig['texter_transports'] ?? null)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// there is no texter config, we try to configure one
|
||||
$configs = $container->getExtensionConfig('chill_main');
|
||||
$notifierSet = false;
|
||||
foreach (array_reverse($configs) as $config) {
|
||||
|
@ -32,6 +32,10 @@ final readonly class SentMessageEventSubscriber implements EventSubscriberInterf
|
||||
{
|
||||
$message = $event->getMessage();
|
||||
|
||||
$this->logger->warning('[sms] a sms was sent', ['validReceiversI' => $message->getOriginalMessage()->getRecipientId(), 'idsI' => $message->getMessageId()]);
|
||||
if (null === $message->getMessageId()) {
|
||||
$this->logger->info('[sms] a sms message did not had any id after sending.', ['validReceiversI' => $message->getOriginalMessage()->getRecipientId()]);
|
||||
} else {
|
||||
$this->logger->warning('[sms] a sms was sent', ['validReceiversI' => $message->getOriginalMessage()->getRecipientId(), 'idsI' => $message->getMessageId()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user