Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
212
/
root
/
proc
/
212
/
root
/
proc
/
self
/
root
/
proc
/
70528
/
cwd
/
src
/
Controller
/
front
/
//proc/212/root/proc/212/root/proc/self/root/proc/70528/cwd/src/Controller/front/PageController.php
<?php namespace App\Controller\front; use App\Service\CartService; use App\Service\MailerService; use App\Repository\CartRepository; use App\Repository\ProductRepository; use App\Repository\CartItemRepository; use Doctrine\Persistence\ManagerRegistry; use App\Repository\FeaturedProductRepository; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Mailer\Transport\TransportInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; class PageController extends AbstractController { /** * @Route("/", name="app_homepage") */ public function index(FeaturedProductRepository $featuredProductRepository): Response { return $this->render('front/page/index.html.twig', [ "products" => $featuredProductRepository->findAll() ]); } /** * @Route("/payement/success", name="app_payement_success") */ public function payementSuccess(Request $request, ManagerRegistry $doctrine, Session $session, TransportInterface $transportInterface) { $sessionToken = $session->get("token"); $token = $request->query->get("token"); // Confirmation du payement : le token correspond if ($token !== $sessionToken) { $this->addFlash("warning", "Vous n'avez pas accès à cette page."); return $this->redirectToRoute("app_homepage"); } $stripeUrl = "https://checkout.stripe.com/"; $referer = (string) $request->headers->get('referer', ''); if (!str_starts_with($referer, $stripeUrl)) { $this->addFlash("warning", "Vous n'avez pas accès à cette page."); return $this->redirectToRoute("app_homepage"); } $user = $this->getUser(); $cartService = new CartService($user, $doctrine, $session); $cart = $cartService->getDeliveryCart(); if (!$cart) { return $this->redirectToRoute("app_homepage"); } $session->remove("token"); $cart->setPayementStatus("finished"); $cart->setStep("completed"); $cart->setSessionToken(null); $em = $doctrine->getManager(); $em->persist($cart); $em->flush(); $mailer = new MailerService($transportInterface); $mailer->sendCommand($cart->getCommand(), "contact@igprint.fr"); $mailer->sendCommandConfirmation($cart->getCommand()); return $this->render("front/payement/success.html.twig"); } /** * @Route("/payement/canceled", name="app_payement_cancel") */ public function payementCanceled() { return $this->render("front/payement/canceled.html.twig"); } /** * @Route("/qui-sommes-nous", name="app_enterprise") */ public function enterprise() { return $this->redirectToRoute('app_igprint'); } /** * @Route("/IG-Print", name="app_igprint") */ public function igprint() { return $this->render("front/page/qui-sommes-nous.html.twig"); } /** * @Route("/xbanner", name="app_xbanner") */ public function xbanner(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "Xbanner xs", "category" => 1]); return $this->render("front/page/xbanner-xs.html.twig", [ "product" => $product ]); } /** * @Route("/stickers", name="app_stickers") */ public function stickers(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "Stickers", "category" => 4]); return $this->render("front/page/stickers.html.twig", [ "product" => $product ]); } /** * @Route("/roll-up", name="app_rollup") */ public function rollUp(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "Roll Up", "category" => 1]); return $this->render("front/page/roll-up.html.twig", [ "product" => $product ]); } /** * @Route("/panneau", name="app_panneau") */ public function panneau(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "panneau", "category" => 1]); return $this->render("front/page/panneau.html.twig", [ "product" => $product ]); } /** * @Route("/flyers", name="app_flyers") */ public function flyers(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "flyer", "category" => 2]); return $this->render("front/page/flyers.html.twig", [ "product" => $product ]); } /** * @Route("/depliants", name="app_depliants") */ public function depliants(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "depliant", "category" => 2]); return $this->render("front/page/depliants.html.twig", [ "product" => $product ]); } /** * @Route("/cartes", name="app_cartes") */ public function cartes(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "carte", "category" => 8]); return $this->render("front/page/cartes.html.twig", [ "product" => $product ]); } /** * @Route("/carnets-autocopiant", name="app_carnets") */ public function carnetAutocopiant(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "carnet autocopiant", "category" => 9]); return $this->render("front/page/carnets.html.twig", [ "product" => $product ]); } /** * @Route("/brochures", name="app_brochures") */ public function brochures(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "brochures", "category" => 3]); return $this->render("front/page/brochures.html.twig", [ "product" => $product ]); } /** * @Route("/baches", name="app_baches") */ public function baches(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "bache", "category" => 1]); return $this->render("front/page/baches.html.twig", [ "product" => $product ]); } /** * @Route("/affiches", name="app_affiches") */ public function affiches(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "Affiche", "category" => 1, "id" => 130]); return $this->render("front/page/affiches.html.twig", [ "product" => $product ]); } /** * @Route("/adhesif-uv-gel", name="app_adhesif") */ public function adhesif(ProductRepository $productRepository) { $product = $productRepository->findOneBy(["name" => "adhesif uv gel", "category" => 1]); return $this->render("front/page/adhesif.html.twig", [ "product" => $product ]); } /** * @Route("/categorie-flyers-depliants", name="app_categorie_flyers_depliants") */ public function categorieFlyersDepliants() { return $this->render("front/page/categorie-flyers-depliants.html.twig"); } /** * @Route("/categorie-sticker", name="app_categorie_sticker") */ public function categorieSticker() { return $this->render("front/page/categorie-stickers.html.twig"); } /** * @Route("/categorie-carterie", name="app_categorie_carterie") */ public function categorieCarterie() { return $this->render("front/page/categorie-carterie.html.twig"); } /** * @Route("/categorie-carnets-liasses", name="app_categorie_carnet_liasse") */ public function categorieCarnetLiasse() { return $this->render("front/page/categorie-carnets-liasses.html.twig"); } /** * @Route("/categorie-brochures", name="app_categorie_brochures") */ public function categoriebrochures() { return $this->render("front/page/categorie-brochures.html.twig"); } /** * @Route("/categorie-plv", name="app_categorie_plv") */ public function categoriePlv() { return $this->render("front/page/categorie-plv.html.twig"); } /** * @Route("/_commande/{id}/attachment/download", name="app_command_attachment_download") */ public function downloadDesign($id, CartItemRepository $cartItemRepository, Request $request) { $token = $request->query->get("token"); $item = $cartItemRepository->find($id); if ($token !== $item->getDownloadToken()) { $this->addFlash("danger", "Vous n'avez pas accès à cette page."); return $this->redirectToRoute("app_homepage"); } $baseUrl = "uploads/products/design/"; $file = $baseUrl . $item->getDesign(); return new BinaryFileResponse($file); } /** * @Route("/imprimerie-rungis", name="app_imprimerie_rungis") */ public function imprimeireRungis() { return $this->render("front/page/imprimerie-rungis.html.twig"); } /** * @Route("/imprimerie-bourg-la-reine", name="app_imprimerie_bourg_la_reine") */ public function imprimerieBLR() { return $this->render("front/page/imprimerie-bourg-la-reine.html.twig"); } /** * @Route("/imprimerie-chilly-mazarin", name="app_imprimerie_chilly_mazarin") */ public function imprimeireChillyMazarin() { return $this->render("front/page/imprimerie-chilly-mazarin.html.twig"); } /** * @Route("/imprimerie-palaiseau", name="app_imprimerie_palaiseau") */ public function imprimeriePalaiseau() { return $this->render("front/page/imprimerie-palaiseau.html.twig"); } /** * @Route("/imprimerie-chatenay-malabry", name="app_imprimerie_chatenay") */ public function imprimeireChatenay() { return $this->render("front/page/imprimerie-chatenay.html.twig"); } /** * @Route("/imprimerie-eco-responsable", name="app_imprimerie_eco_responsable") */ public function imprimerieEcoResponsable() { return $this->render("front/page/imprimerie-eco-responsable.html.twig"); } /** * @Route("/mentions-legales", name="app_mentions_legales") */ public function mentionsLegales(): Response { return $this->render("front/page/mentions-legales.html.twig"); } /** * @Route("/stripe/webhook", name="app_stripe_webhook", methods={"POST"}) */ public function stripeWebhook(Request $request, ManagerRegistry $doctrine, TransportInterface $transportInterface): Response { $payload = $request->getContent(); $sigHeader = $request->headers->get('stripe-signature'); $webhookSecret = $this->getParameter('conf_wh_stripe'); try { $event = \Stripe\Webhook::constructEvent($payload, $sigHeader, $webhookSecret); } catch (\Throwable $e) { return new Response('Invalid signature', 400); } if ($event->type === 'checkout.session.completed') { $stripeSession = $event->data->object; $em = $doctrine->getManager(); $cartId = $stripeSession->metadata->cart_id ?? null; $cart = $em->getRepository(Cart::class)->find($cartId); if($cart === null) { return new Response('Not Found', 404); } if ($stripeSession->payment_status === 'paid') { $cart->setPayementStatus("finished"); $cart->setStep("completed"); $cart->setSessionToken(null); $mailer = new MailerService($transportInterface); $mailer->sendCommandConfirmation($cart->getCommand()); } elseif($stripeSession->payment_status === 'unpaid') { $cart->setPayementStatus("unpaid"); $cart->setStep("cart"); $cart->setSessionToken(null); } $em->flush(); } return new Response('OK', 200); } }