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
/
self
/
root
/
proc
/
212
/
task
/
212
/
root
/
proc
/
70528
/
cwd
/
src
/
Service
/
//proc/212/root/proc/self/root/proc/212/task/212/root/proc/70528/cwd/src/Service/ProductService.php
<?php namespace App\Service; use App\Repository\ColorRepository; use App\Repository\FinishingRepository; use App\Repository\FoldRepository; use App\Repository\GrammageRepository; use App\Repository\PageRepository; use App\Repository\ProductRepository; use App\Repository\SizeRepository; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\File\UploadedFile; class ProductService { public const MOCKUP_ALLOWED_MIME_TYPES = ['image/jpeg', 'image/png', 'image/webp']; public const READY_MOCKUP_ALLOWED_MIME_TYPES = ['image/jpeg', 'image/png', 'image/webp', 'application/pdf']; public $productRepository; public $sizeRepository; public $pageRepository; public $grammageRepository; public $finishingRepository; public $colorRepository; public $foldRepository; public function __construct( ProductRepository $productRepository, SizeRepository $sizeRepository, PageRepository $pageRepository, GrammageRepository $grammageRepository, FinishingRepository $finishingRepository, ColorRepository $colorRepository, FoldRepository $foldRepository ) { $this->productRepository = $productRepository; $this->sizeRepository = $sizeRepository; $this->pageRepository = $pageRepository; $this->grammageRepository = $grammageRepository; $this->finishingRepository = $finishingRepository; $this->colorRepository = $colorRepository; $this->foldRepository = $foldRepository; } public function getTextualProductConfigurationsByRequest(Request $request): array { $size = $this->sizeRepository->find((int) $request->request->get("size")); $page = $this->pageRepository->find((int) $request->request->get("pages")); $grammage = $this->grammageRepository->find((int) $request->request->get("grammage")); $finishing = $this->finishingRepository->find((int) $request->request->get("finishing")); $color = $this->colorRepository->find((int) $request->request->get("color")); //$fold = $this->foldRepository->find() $configuration = array_filter([ "taille" => $size ? $size->getName() : null, "pages" => $page ? $page->getName() : null, "grammage" => $grammage ? $grammage->getName() : null, "finition" => $finishing ? $finishing->getName() : null, "couleur" => $color ? $color->getName() : null //"fold" => ]); return $configuration; } /** * Récupère et valide le fichier de visuel envoyé pour la génération de maquette. * * @throws \InvalidArgumentException si le fichier est absent, invalide ou non supporté */ public function getValidatedDesignFileByRequest(Request $request): ?UploadedFile { /** @var UploadedFile|null $designFile */ $designFile = $request->files->get("designFile"); if (!$designFile) { return $designFile; } if (!$designFile->isValid()) { throw new \InvalidArgumentException("Le fichier envoyé est invalide ou n'a pas pu être téléchargé entièrement."); } if (!in_array($designFile->getMimeType(), self::MOCKUP_ALLOWED_MIME_TYPES)) { throw new \InvalidArgumentException("Format non supporté pour la maquette : utilisez une image JPG, PNG ou WEBP."); } return $designFile; } /** * Récupère et valide la maquette déjà réalisée envoyée par le client (cas "J'ai déjà une maquette"). * * @throws \InvalidArgumentException si le fichier est absent, invalide ou non supporté */ public function getValidatedReadyMockupByRequest(Request $request): UploadedFile { /** @var UploadedFile|null $file */ $file = $request->files->get("mockup_designFile_image"); if (!$file) { throw new \InvalidArgumentException("Veuillez sélectionner un fichier de maquette."); } if (!$file->isValid()) { throw new \InvalidArgumentException("Le fichier envoyé est invalide ou n'a pas pu être téléchargé entièrement."); } if (!in_array($file->getMimeType(), self::READY_MOCKUP_ALLOWED_MIME_TYPES)) { throw new \InvalidArgumentException("Format non supporté : utilisez une image JPG, PNG, WEBP ou un PDF."); } return $file; } }