From c504f9e4def856ff5238b36050467d4fa4e0393a Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Sat, 13 Dec 2025 18:24:33 +0100 Subject: [PATCH] Basket Bundle Attributes --- src/new/config/reference.php | 4 +- .../BasketBundle/Api/Basket/Legacy/Add.php | 25 +++------ .../BasketBundle/Api/Basket/Legacy/Temp.php | 44 +++++++--------- .../BasketBundle/Api/Basket/Legacy/Update.php | 48 +++++++---------- .../Shop/BasketBundle/Api/Layouter/Save.php | 50 ++++++++++++++++++ .../Shop/BasketBundle/Dto/Layouter/Input.php | 14 +++++ .../Shop/BasketBundle/Dto/Legacy/Input.php | 52 +++++-------------- 7 files changed, 124 insertions(+), 113 deletions(-) create mode 100644 src/new/src/PSC/Shop/BasketBundle/Dto/Layouter/Input.php diff --git a/src/new/config/reference.php b/src/new/config/reference.php index 1875f986e..577739b43 100644 --- a/src/new/config/reference.php +++ b/src/new/config/reference.php @@ -474,7 +474,7 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; * datetime?: array{ * default_format?: scalar|null, // Default: "Y-m-d\\TH:i:sP" * default_deserialization_formats?: list, - * default_timezone?: scalar|null, // Default: "UTC" + * default_timezone?: scalar|null, // Default: "Europe/Berlin" * cdata?: scalar|null, // Default: true * }, * array_collection?: array{ @@ -574,7 +574,7 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; * datetime?: array{ * default_format?: scalar|null, // Default: "Y-m-d\\TH:i:sP" * default_deserialization_formats?: list, - * default_timezone?: scalar|null, // Default: "UTC" + * default_timezone?: scalar|null, // Default: "Europe/Berlin" * cdata?: scalar|null, // Default: true * }, * array_collection?: array{ diff --git a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php index a947e3f3b..65823c0a5 100755 --- a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php +++ b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php @@ -3,9 +3,10 @@ namespace PSC\Shop\BasketBundle\Api\Basket\Legacy; use Doctrine\ORM\EntityManagerInterface; -use Nelmio\ApiDocBundle\Annotation\Model; -use Nelmio\ApiDocBundle\Annotation\Security; -use OpenApi\Annotations as OA; +use Nelmio\ApiDocBundle\Attribute\Model; +use OpenApi\Attributes\JsonContent; +use OpenApi\Attributes\RequestBody; +use OpenApi\Attributes\Response; use OpenApi\Attributes\Tag; use PSC\Component\ApiBundle\Dto\Error\NotFound; use PSC\Shop\BasketBundle\Dto\Legacy\Input; @@ -14,7 +15,6 @@ use PSC\Shop\BasketBundle\Event\Legacy\Add as PSCAdd; use PSC\Shop\EntityBundle\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\Routing\Attribute\Route; @@ -32,22 +32,11 @@ class Add extends AbstractController ) {} /** - * change temp basketitem - * * @deprecated - * - * @OA\Response( - * response=200, - * description="basket", - * @OA\JsonContent(ref=@Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Output::class)) - * ) - * @OA\RequestBody( - * description="This is a request body", - * @Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Input::class)) - * ) - * @OA\Tag(name="Basket") */ - #[Tag('Basket')] + #[Tag(name: 'Basket')] + #[Response(response: 200, description: 'basket', content: new JsonContent(ref: new Model(type: Output::class)))] + #[RequestBody(description: 'This is a request body', content: new Model(type: Input::class))] #[Route(path: '/legacy/add', methods: ['POST'])] public function add(#[MapRequestPayload] Input $data): JsonResponse { diff --git a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Temp.php b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Temp.php index 94a20bd32..fe2a56c5f 100755 --- a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Temp.php +++ b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Temp.php @@ -3,9 +3,11 @@ namespace PSC\Shop\BasketBundle\Api\Basket\Legacy; use Doctrine\ORM\EntityManagerInterface; -use Nelmio\ApiDocBundle\Annotation\Model; -use Nelmio\ApiDocBundle\Annotation\Security; -use OpenApi\Annotations as OA; +use Nelmio\ApiDocBundle\Attribute\Model; +use OpenApi\Attributes\JsonContent; +use OpenApi\Attributes\RequestBody; +use OpenApi\Attributes\Response; +use OpenApi\Attributes\Tag; use PSC\Component\ApiBundle\Dto\Error\NotFound; use PSC\Shop\BasketBundle\Dto\Legacy\Input; use PSC\Shop\BasketBundle\Dto\Legacy\Output; @@ -13,12 +15,11 @@ use PSC\Shop\BasketBundle\Event\Legacy\Temp as PSCTemp; use PSC\Shop\EntityBundle\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\KernelInterface; -use Symfony\Component\Routing\Annotation\Route; -use Symfony\Component\Yaml\Yaml; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; +use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Component\Routing\Attribute\Route; +use Symfony\Component\Security\Http\Attribute\IsGranted; +use Symfony\Component\Yaml\Yaml; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; class Temp extends AbstractController @@ -33,26 +34,17 @@ class Temp extends AbstractController } /** - * change temp basketitem * @deprecated - * - * @OA\Response( - * response=200, - * description="basket", - * @OA\JsonContent(ref=@Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Output::class)) - * ) - * @OA\RequestBody( - * description="This is a request body", - * @Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Input::class)) - * ) - * @OA\Tag(name="Basket") */ + #[Tag(name: 'Basket')] + #[Response(response: 200, description: 'basket', content: new JsonContent(ref: new Model(type: Output::class)))] + #[RequestBody(description: 'This is a request body', content: new Model(type: Input::class))] #[Route(path: '/legacy/temp', methods: ['POST'])] - public function temp(#[MapRequestPayload] Input $data): JsonResponse + public function temp(#[MapRequestPayload] Input $data): JsonResponse { - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Item.php'); - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Collection.php'); - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Util.php'); + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Item.php'; + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Collection.php'; + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Util.php'; $product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $data->productUUId]); @@ -61,7 +53,7 @@ class Temp extends AbstractController $this->eventDispatcher->dispatch($event, PSCTemp::NAME); $basketItem = $_SESSION['Basket']['TempProduct'][$data->productUUId]; - $basketItem->setXmlProduct((string)$data->xmlProduct); + $basketItem->setXmlProduct((string) $data->xmlProduct); $output = new Output(); $output->success = true; @@ -70,6 +62,6 @@ class Temp extends AbstractController return $this->json(new Output()); } - return $this->json(new NotFound("order not found")); + return $this->json(new NotFound('order not found')); } } diff --git a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Update.php b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Update.php index 04b6cacc9..54fdca970 100755 --- a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Update.php +++ b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Update.php @@ -3,9 +3,11 @@ namespace PSC\Shop\BasketBundle\Api\Basket\Legacy; use Doctrine\ORM\EntityManagerInterface; -use Nelmio\ApiDocBundle\Annotation\Model; -use Nelmio\ApiDocBundle\Annotation\Security; -use OpenApi\Annotations as OA; +use Nelmio\ApiDocBundle\Attribute\Model; +use OpenApi\Attributes\JsonContent; +use OpenApi\Attributes\RequestBody; +use OpenApi\Attributes\Response; +use OpenApi\Attributes\Tag; use PSC\Component\ApiBundle\Dto\Error\NotFound; use PSC\Shop\BasketBundle\Dto\Legacy\Input; use PSC\Shop\BasketBundle\Dto\Legacy\Output; @@ -13,12 +15,11 @@ use PSC\Shop\BasketBundle\Event\Legacy\Update as PSCUpdate; use PSC\Shop\EntityBundle\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\KernelInterface; -use Symfony\Component\Routing\Annotation\Route; -use Symfony\Component\Yaml\Yaml; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; +use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Component\Routing\Attribute\Route; +use Symfony\Component\Security\Http\Attribute\IsGranted; +use Symfony\Component\Yaml\Yaml; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; class Update extends AbstractController @@ -33,26 +34,17 @@ class Update extends AbstractController } /** - * change temp basketitem * @deprecated - * - * @OA\Response( - * response=200, - * description="basket", - * @OA\JsonContent(ref=@Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Output::class)) - * ) - * @OA\RequestBody( - * description="This is a request body", - * @Model(type=\PSC\Shop\BasketBundle\Dto\Legacy\Input::class)) - * ) - * @OA\Tag(name="Basket") */ + #[Tag(name: 'Basket')] + #[Response(response: 200, description: 'basket', content: new JsonContent(ref: new Model(type: Output::class)))] + #[RequestBody(description: 'This is a request body', content: new Model(type: Input::class))] #[Route(path: '/legacy/update', methods: ['POST'])] - public function update(#[MapRequestPayload] Input $data): JsonResponse + public function update(#[MapRequestPayload] Input $data): JsonResponse { - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Item.php'); - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Collection.php'); - require_once(__DIR__ . '/../../../../EntityBundle/Lagacy/TP_Util.php'); + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Item.php'; + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Basket_Collection.php'; + require_once __DIR__ . '/../../../../EntityBundle/Lagacy/TP_Util.php'; $product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $data->productUUId]); @@ -62,9 +54,9 @@ class Update extends AbstractController $articles = $_SESSION['Basket']['Articles']; $basketItem = $_SESSION['Basket']['TempProduct'][$data->productUUId]; - $basketItem->setDeliveryDate((string)$data->deliveryDate); - $basketItem->setDeliveryInfo((string)$data->deliveryInfo); - $basketItem->setXmlProduct((string)$data->xmlProduct); + $basketItem->setDeliveryDate((string) $data->deliveryDate); + $basketItem->setDeliveryInfo((string) $data->deliveryInfo); + $basketItem->setXmlProduct((string) $data->xmlProduct); $articles->updateItem($basketItem->getInLoad(), $basketItem); $output = new Output(); @@ -76,6 +68,6 @@ class Update extends AbstractController return $this->json(new Output()); } - return $this->json(new NotFound("order not found")); + return $this->json(new NotFound('order not found')); } } diff --git a/src/new/src/PSC/Shop/BasketBundle/Api/Layouter/Save.php b/src/new/src/PSC/Shop/BasketBundle/Api/Layouter/Save.php index e69de29bb..c9999034c 100644 --- a/src/new/src/PSC/Shop/BasketBundle/Api/Layouter/Save.php +++ b/src/new/src/PSC/Shop/BasketBundle/Api/Layouter/Save.php @@ -0,0 +1,50 @@ +