From c796db6d7c81caa1febbe47315130195a89215e5 Mon Sep 17 00:00:00 2001 From: Baptiste Lemoine Date: Fri, 10 Apr 2020 18:02:52 +0200 Subject: [PATCH] action de test pour template de mail --- src/Controller/DefaultController.php | 5 +- src/Controller/PollController.php | 50 ++++++++++++++++++- templates/emails/author-mail.html.twig | 5 +- templates/emails/creation-mail.html.twig | 27 ++++++++-- templates/emails/expiration-mail.html.twig | 5 ++ templates/emails/owner-list.html.twig | 49 +----------------- templates/emails/partial/admin_link.html.twig | 2 + templates/emails/partial/poll.html.twig | 39 +++++++++++++++ .../emails/partial/public_link.html.twig | 11 ++++ 9 files changed, 135 insertions(+), 58 deletions(-) create mode 100644 templates/emails/partial/admin_link.html.twig create mode 100644 templates/emails/partial/poll.html.twig create mode 100644 templates/emails/partial/public_link.html.twig diff --git a/src/Controller/DefaultController.php b/src/Controller/DefaultController.php index 5d0c23d..2eb7664 100644 --- a/src/Controller/DefaultController.php +++ b/src/Controller/DefaultController.php @@ -31,6 +31,8 @@ class DefaultController extends AbstractController { */ public function sendPollsToUser( $email, \Swift_Mailer $mailer ) { $repository = $this->getDoctrine()->getRepository( Owner::class ); + + // find user by email $founduser = $repository->findOneBy( [ 'email' => $email ] ); if ( $founduser ) { @@ -68,9 +70,6 @@ class DefaultController extends AbstractController { ], 400 ); } - // find user by email - - } diff --git a/src/Controller/PollController.php b/src/Controller/PollController.php index 0180cbf..3114b33 100644 --- a/src/Controller/PollController.php +++ b/src/Controller/PollController.php @@ -11,6 +11,7 @@ use FOS\RestBundle\Controller\Annotations\Post; use FOS\RestBundle\Controller\Annotations\Put; use FOS\RestBundle\Controller\Annotations\Route; use JMS\Serializer\SerializerBuilder; +use Swift_Message; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -137,7 +138,7 @@ class PollController extends AbstractController { * * @return JsonResponse */ - public function newPollAction( Request $request ) { + public function newPollAction( Request $request, \Swift_Mailer $mailer ) { $data = $request->getContent(); @@ -225,6 +226,8 @@ class PollController extends AbstractController { $precision = 'from an existing user : ' . $foundOwner->getEmail(); } + $this->sendCreationMailAction( $foundOwner, $newpoll, $mailer ); + return $this->json( [ 'message' => 'you created a poll ' . $precision, 'poll' => $newpoll, @@ -237,6 +240,51 @@ class PollController extends AbstractController { } + /** + * @Get( + * path = "/mail/test-mail-poll", + * name = "test-mail-poll", + * ) + * + * send the creation mail to owner + * + * @param Owner $admin_user + * @param Poll $poll + * @param \Swift_Mailer $mailer + * + * @return int + */ +// public function sendCreationMailAction( Owner $admin_user, Poll $poll, \Swift_Mailer $mailer) { + public function sendCreationMailAction( \Swift_Mailer $mailer ) { + + $em = $this->getDoctrine()->getRepository( Owner::class ); + $admin_user = $em->find( 1 ); + $poll = $admin_user->getPolls()[ 0 ]; + + $templateVars = [ + 'owner' => $admin_user, + 'poll' => $poll, + 'url' => $poll->getCustomUrl(), + 'title' => 'Création de sondage - ' . $poll->getTitle(), + 'email_template' => 'emails/creation-mail.html.twig', + ]; + + $message = ( new Swift_Message( 'Framadate - mes sondages' ) ) + ->setFrom( 'ne-pas-repondre@framadate-api.cipherbliss.com' ) + ->setTo( $admin_user->getEmail() ) + ->setBody( + $this->renderView( + $templateVars[ 'email_template' ], + $templateVars + ) + ); + + // send email +// return $mailer->send( $message ); + return $this->render( $templateVars[ 'email_template' ], $templateVars ); + + } + /** * @Delete( diff --git a/templates/emails/author-mail.html.twig b/templates/emails/author-mail.html.twig index 4adec7e..3611148 100644 --- a/templates/emails/author-mail.html.twig +++ b/templates/emails/author-mail.html.twig @@ -3,13 +3,14 @@ Ce message ne doit PAS être diffusé aux sondés. Il est réservé à l'auteur
Vous pouvez modifier ce sondage à l'adresse suivante :
-{{ url }} +{% include 'partial/admin_link.html.twig' %}
Pour partager votre sondage aux participants, utilisez son lien d'accès public.
-{% if is_password_protected %} +{% if poll.password %} Ce sondage est protégé par un mot de passe, n'oubliez pas de le communiquer à vos participants. + Vous pouvez changer ce mot de passe via l'administration. {% else %} {% endif %} diff --git a/templates/emails/creation-mail.html.twig b/templates/emails/creation-mail.html.twig index 2275545..d5d75d4 100644 --- a/templates/emails/creation-mail.html.twig +++ b/templates/emails/creation-mail.html.twig @@ -1,11 +1,28 @@ {#[Framadate][Pour diffusion aux sondés] Sondage: TESSSSSSSSSST#} -Ceci est le message qui doit être envoyé aux sondés.
+{% extends 'email-base.html.twig' %} +{% block content %} + + +Suite à la création de votre sondage {{ title }} vous recevez deux emails afin de ne pas transmettre par erreur aux sondés le lien d'administration de votre sondage. + Ce mail est le premier, comportant le message qui doit être envoyé aux sondés.
+ Vous pouvez maintenant transmettre ce message à toutes les personnes susceptibles de participer au vote.
+
-hah vient de créer un sondage intitulé : "{{ title }}".
+
+ +
+ + + {{ owner.pseudo }} ( {{ owner.email }} ) vient de créer un sondage intitulé : " {{ title }}". +
+
Merci de bien vouloir participer au sondage à l'adresse suivante :
- - {{ url }} - +
+ {% include 'emails/partial/public_link.html.twig' %} +
+
+ +{% endblock %} diff --git a/templates/emails/expiration-mail.html.twig b/templates/emails/expiration-mail.html.twig index 468630f..b4bad72 100644 --- a/templates/emails/expiration-mail.html.twig +++ b/templates/emails/expiration-mail.html.twig @@ -1,5 +1,10 @@ {#[Framadate][expiration] Sondage: TESSSSSSSSSST#} +{% extends 'email-base.html.twig' %} +{% block content %} + + Ce sondage va bientôt expirer dans 1 jour, il ne sera plus possible d'y voter. Dans 31 jours il sera supprimé. Vous pouvez exporter ses données à tout moment en vous rendant à ce lien pour l'administrer: {{ url }} +{% endblock %} diff --git a/templates/emails/owner-list.html.twig b/templates/emails/owner-list.html.twig index db4ad4e..77b1900 100644 --- a/templates/emails/owner-list.html.twig +++ b/templates/emails/owner-list.html.twig @@ -15,55 +15,10 @@