mail-rss/src/Controller/MailingController.php

41 lines
1.1 KiB
PHP

<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Repository\MailRepository;
use App\Entity\Mailing;
use App\Entity\Mail;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
class MailingController extends AbstractController
{
/**
* @Route("/mailing/{mailing}/rss", name="mailing_rss")
* @ParamConverter("mailing", options={"mapping": {"mailing": "id"}})
*/
public function rss(Mailing $mailing, MailRepository $mailRepository): Response
{
$mails = $mailRepository->findBy(
[
'mailing' => $mailing->getId(),
],
[
'date' => 'DESC',
],
20
);
$response = $this->render('mailing/rss.html.twig', [
'mailing' => $mailing,
'mails' => $mails,
]);
$response->headers->set('Content-Type', 'application/rss+xml');
return $response;
}
}