src/Controller/WishlistController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\DTO\AppDTO;
  4. use App\Service\Auth\Auth;
  5. use App\Model\Cart as ModelCart;
  6. use App\Model\Prod as ModelProd;
  7. use App\Repository\OrderRepository;
  8. use App\Model\Wishlist as ModelWishlist;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. class WishlistController extends AbstractASController
  14. {
  15.     public function __construct(
  16.         private AppDTO $app
  17.         private ModelWishlist $Wishlist
  18.         private ModelProd $ModelProd,
  19.         private ModelCart $ModelCart,
  20.         private OrderRepository $Orders,
  21.         private Auth $Auth,
  22.         RequestStack $requestStack,
  23.     )
  24.     {
  25.         $this->requestStack $requestStack;
  26.     }
  27.         
  28.     #[Route(path'/wishlist'name'wishlist_no_locale'priority100defaults: ['_locale' => '%app.default_lang%'])]
  29.     #[Route(path'/{_locale}/wishlist'name'wishlist'priority100requirements: ['_locale' => '%app.langs%'])]
  30.     public function index(Request $request): Response
  31.     {
  32.         /** @var \App\Entity\User $user */
  33.         $user $this->getUser();
  34.         $wishlist $this->Wishlist->getProds($user->getId());
  35.         return $this->render('wishlist/index.html.twig', [
  36.             'wishlist' => $wishlist,
  37.             'ocount' => $this->_ocount(),
  38.             'cart_items' => $this->ModelCart->getCart(),
  39.         ]);
  40.     }
  41.     #[Route(path'/wishlist/add/{prod}'name'wishlist_add_no_locale'priority100defaults: ['_locale' => '%app.default_lang%'])]
  42.     #[Route(path'/{_locale}/wishlist/add/{prod}'name'wishlist_add'priority100requirements: ['_locale' => '%app.langs%'])]
  43.     public function add(int $prod 0): Response
  44.     {
  45.         /** @var \App\Entity\User $user */
  46.         $user $this->getUser();
  47.         $this->Wishlist->addProd($user->getId(), $prod);        
  48.         return $this->redirectToRoute('wishlist');
  49.     }
  50.     #[Route('/wishlist/delete/{id}'name'wishlist_delete_no_locale'priority100defaults: ['_locale' => '%app.default_lang%'])]
  51.     #[Route('/{_locale}/wishlist/delete/{id}'name'wishlist_delete'priority100requirements: ['_locale' => '%app.langs%'])]
  52.     public function delete(int $id 0): Response
  53.     {
  54.         $this->Wishlist->removeWish($id);
  55.         return $this->redirectToRoute('wishlist');
  56.     }
  57.     private function _ocount(): array
  58.     {
  59.         /** @var \App\Entity\Order[] $orders */
  60.         $orders $this->Orders->findBy(['user' => $this->Auth->getUserId()]);
  61.         //Order->getall(array("where" => "user = '".Db::nq(Auth::getUserId())."'", "order" => "tstamp desc"));
  62.         $ocount = array(000000000000);
  63.         foreach ($orders as $order) {
  64.             $ocount[$order->getStatus()]++;
  65.         }
  66.         return $ocount;
  67.     }
  68. }