Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tech - email] Système de secours en cas d'erreur d'envoi #3298

Merged
merged 8 commits into from
Nov 28, 2024

Conversation

hmeneuvrier
Copy link
Collaborator

@hmeneuvrier hmeneuvrier commented Nov 14, 2024

Ticket

#3260

Description

Stockage en base des mails non-envoyés (erreurs) et création d'une commande pour les renvoyer

Changements apportés

  • Création de la table failed_email (migrations/entité)
  • Création d'une commande retry-failed-emails pour l'instant à lancer à la main de temps en temps
  • Modification du AbstractNotificationMailer pour enregistrer les mails qui ne sont pas envoyés dans la table (sauf si on passe par la commande)
  • Mise à jour de tous les service/mailer pour passer entityManager
  • Mise à jour ActivityListener pour enregistrer le suivi concerné dans une colonne à part entière et pas dans les params (et mise à jour en conséquence de SuiviNewCommentBackMailer, du twig associé et de NotificationMail)
  • Mise à jour de tous les templates de mails (et les services/mailers associés) pour ne pas utiliser directement d'entités dans les templates.

Pré-requis

make execute-migration name=Version20241112145634 direction=up

Dans AbstractNotificationMailer remplacer les lignes 96 à 102

        try {
            $this->mailer->send($message);

            return true;
        } catch (\Throwable $exception) {
            $this->logAndSaveFailedEmail($message, $notificationMail, $exception, $params, $saveFailedMail);
        }

par

        $exception = new \Exception(message: 'test');
        $this->logAndSaveFailedEmail($message, $notificationMail, $exception, $params, $saveFailedMail);

Tests

  • Faire des actions sur la plateforme pour générer le plus de mails possibles (notamment des mails d'ajout de suivi, des mails avec pièce jointe -> nouveau signalement de locataire avec proprio pas averti)
  • Vérifier le remplissage de la table failed_email
  • Lancer la commande make console app="retry-failed-emails" et vérifier qu'il n'y a pas d'erreur, et que les mails sont bien renvoyés
  • Remettre AbstractNotificationMailer en état

@hmeneuvrier hmeneuvrier changed the title save not send emails #3260 [Tech - email] Système de secours en cas d'erreur d'envoi Nov 14, 2024
@hmeneuvrier hmeneuvrier force-pushed the feature/3260-tech---email-save-not-sent-email branch from d56e949 to 37b690e Compare November 14, 2024 14:55
@hmeneuvrier hmeneuvrier marked this pull request as ready for review November 15, 2024 09:35
Copy link
Collaborator

@emilschn emilschn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mes tests semblent concluants :)

migrations/Version20241112145634.php Show resolved Hide resolved
migrations/Version20241112145634.php Outdated Show resolved Hide resolved
src/Command/RetryFailedEmailsCommand.php Outdated Show resolved Hide resolved
src/Command/RetryFailedEmailsCommand.php Show resolved Hide resolved
src/Command/RetryFailedEmailsCommand.php Outdated Show resolved Hide resolved
src/Command/RetryFailedEmailsCommand.php Outdated Show resolved Hide resolved
src/Entity/FailedEmail.php Show resolved Hide resolved
src/EventListener/ActivityListener.php Show resolved Hide resolved
src/Service/Mailer/Mail/AbstractNotificationMailer.php Outdated Show resolved Hide resolved
src/Service/Mailer/Mail/AbstractNotificationMailer.php Outdated Show resolved Hide resolved
@hmeneuvrier hmeneuvrier force-pushed the feature/3260-tech---email-save-not-sent-email branch 2 times, most recently from a406819 to 49833b1 Compare November 20, 2024 09:45
@hmeneuvrier
Copy link
Collaborator Author

du coup 3 trucs à voir avec Saidi demain matin

  • faire un manager et un rerpo pour FailedEmail ?
  • l'injection de setter pour entityManager dans AbstractNotificationMailer
  • boucle infinie sur ActivityListener (faut que je creuse un peu plus, mais là, je fatigue)

@hmeneuvrier hmeneuvrier force-pushed the feature/3260-tech---email-save-not-sent-email branch from 6072339 to 2467d37 Compare November 21, 2024 15:34
@hmeneuvrier hmeneuvrier marked this pull request as draft November 21, 2024 17:02
@hmeneuvrier hmeneuvrier force-pushed the feature/3260-tech---email-save-not-sent-email branch 2 times, most recently from d20a9b0 to cc018fb Compare November 26, 2024 08:47
@hmeneuvrier hmeneuvrier marked this pull request as ready for review November 26, 2024 11:38
Copy link
Collaborator

@numew numew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test ok,
Dommage de ne plus pouvoir passer des object en parametre aux template d'email et les changements que ca implique mais bon si y'a pas d'autre solutions simple ca me va

src/Command/RetryFailedEmailsCommand.php Outdated Show resolved Hide resolved
@hmeneuvrier hmeneuvrier force-pushed the feature/3260-tech---email-save-not-sent-email branch from 24de20f to 4648330 Compare November 27, 2024 15:54
Copy link

sonarcloud bot commented Nov 28, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
14.7% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Copy link
Collaborator

@numew numew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

Copy link
Collaborator

@sfinx13 sfinx13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lecture et test OK
Des les premiers erreurs faudra déclarer un cron pour plus s'en soucier toutes les heures ou 2 heures (je crée le ticket)
Lecture et test OK :-)

@sfinx13 sfinx13 merged commit a19b900 into develop Nov 28, 2024
2 of 3 checks passed
@sfinx13 sfinx13 deleted the feature/3260-tech---email-save-not-sent-email branch November 28, 2024 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants