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
|
@ -1,5 +1,62 @@
|
|||||||
## v3.7.0 - 2025-01-21
|
## v3.7.0 - 2025-01-21
|
||||||
### Feature
|
### Feature
|
||||||
* Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider.
|
* Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider.
|
||||||
### Fixed
|
### 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
|
* ([#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
|
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');
|
$configs = $container->getExtensionConfig('chill_main');
|
||||||
$notifierSet = false;
|
$notifierSet = false;
|
||||||
foreach (array_reverse($configs) as $config) {
|
foreach (array_reverse($configs) as $config) {
|
||||||
|
@ -32,6 +32,10 @@ final readonly class SentMessageEventSubscriber implements EventSubscriberInterf
|
|||||||
{
|
{
|
||||||
$message = $event->getMessage();
|
$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