← Back
Editing: ReportMailController.php
<?php namespace App\Controller; use App\Entity\Report; use App\Entity\ReportMail; use App\Report\Mail\Enum\MailTemplateType; use App\Repository\ReportMailRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; final class ReportMailController extends AbstractController { #[Route('/report/mail/{id}/delete', name: 'app_report_mail_delete', methods: ['GET'])] public function delete(ReportMail $reportMail, ReportMailRepository $repository): RedirectResponse { $repository->remove($reportMail, true); return $this->redirectToRoute('report_detail', ['id' => $reportMail->getReport()->getId(), 'type' => $reportMail->getReport()->getType()->value]); } #[Route('/report/mail/{id}/save', name: 'app_report_mail', methods: ['POST'])] public function save(Report $report, Request $request, ReportMailRepository $repository): JsonResponse { $receivedContent = $request->getContent(); $data = json_decode($receivedContent); $reportMail = (new ReportMail()) ->setReport($report) ->setBody($data->body) ->setMailType( MailTemplateType::tryFrom($data->mailType) ); $repository->save($reportMail, true); return $this->json(data: $reportMail, status: Response::HTTP_OK, context: ['groups' => ['show_report_mail']]); } }
Save File
Cancel