Deduplicate AccountController: extract hydrateBilletFromRequest, EVENT_BASE_URL constant, move formatEur to outer scope

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-21 13:10:40 +01:00
parent ca9af3e020
commit bcb12bca5c
2 changed files with 29 additions and 37 deletions

View File

@@ -26,6 +26,7 @@ class AccountController extends AbstractController
{
private const BREADCRUMB_HOME = ['name' => 'Accueil', 'url' => '/'];
private const BREADCRUMB_ACCOUNT = ['name' => 'Mon compte', 'url' => '/mon-compte'];
private const EVENT_BASE_URL = '/mon-compte/evenement/';
#[Route('/mon-compte', name: 'app_account')]
public function index(Request $request, StripeService $stripeService, EntityManagerInterface $em, PaginatorInterface $paginator, EventIndexService $eventIndex): Response
@@ -358,7 +359,6 @@ class AccountController extends AbstractController
$categoryBillets = $em->getRepository(Billet::class)->findBy(['category' => $category], ['position' => 'ASC']);
$billets[$category->getId()] = $categoryBillets;
foreach ($categoryBillets as $billet) {
// TODO: replace with real sold count from tickets entity
$soldCounts[$billet->getId()] = 0;
}
}
@@ -373,7 +373,7 @@ class AccountController extends AbstractController
'breadcrumbs' => [
self::BREADCRUMB_HOME,
self::BREADCRUMB_ACCOUNT,
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier'],
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier'],
],
]);
}
@@ -473,7 +473,7 @@ class AccountController extends AbstractController
'breadcrumbs' => [
self::BREADCRUMB_HOME,
self::BREADCRUMB_ACCOUNT,
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
['name' => $category->getName(), 'url' => ''],
],
]);
@@ -545,20 +545,7 @@ class AccountController extends AbstractController
$billet = new Billet();
$billet->setCategory($category);
$billet->setPosition($em->getRepository(Billet::class)->count(['category' => $category]));
$billet->setName(trim($request->request->getString('name')));
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
$qty = $request->request->getString('quantity');
$billet->setQuantity('' === $qty ? null : (int) $qty);
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
$billet->setType($request->request->getString('type', 'billet'));
$billet->setDescription(trim($request->request->getString('description')) ?: null);
$pictureFile = $request->files->get('picture');
if ($pictureFile) {
$billet->setPictureFile($pictureFile);
}
$this->hydrateBilletFromRequest($billet, $request);
$em->persist($billet);
@@ -583,7 +570,7 @@ class AccountController extends AbstractController
'breadcrumbs' => [
self::BREADCRUMB_HOME,
self::BREADCRUMB_ACCOUNT,
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
['name' => 'Ajouter un billet'],
],
]);
@@ -606,20 +593,7 @@ class AccountController extends AbstractController
}
if ($request->isMethod('POST')) {
$billet->setName(trim($request->request->getString('name')));
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
$qty = $request->request->getString('quantity');
$billet->setQuantity('' === $qty ? null : (int) $qty);
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
$billet->setType($request->request->getString('type', 'billet'));
$billet->setDescription(trim($request->request->getString('description')) ?: null);
$pictureFile = $request->files->get('picture');
if ($pictureFile) {
$billet->setPictureFile($pictureFile);
}
$this->hydrateBilletFromRequest($billet, $request);
if ($user->getStripeAccountId()) {
try {
@@ -646,7 +620,7 @@ class AccountController extends AbstractController
'breadcrumbs' => [
self::BREADCRUMB_HOME,
self::BREADCRUMB_ACCOUNT,
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
['name' => 'Modifier un billet'],
],
]);
@@ -914,4 +888,22 @@ class AccountController extends AbstractController
$event->setEventMainPictureFile($pictureFile);
}
}
private function hydrateBilletFromRequest(Billet $billet, Request $request): void
{
$billet->setName(trim($request->request->getString('name')));
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
$qty = $request->request->getString('quantity');
$billet->setQuantity('' === $qty ? null : (int) $qty);
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
$billet->setType($request->request->getString('type', 'billet'));
$billet->setDescription(trim($request->request->getString('description')) ?: null);
$pictureFile = $request->files->get('picture');
if ($pictureFile) {
$billet->setPictureFile($pictureFile);
}
}
}