src\Web\HomeController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Web;
  3. use App\Entity\BranchCampaign;
  4. use App\Entity\Contact;
  5. use App\Messages\SendWhatsAppMessage;
  6. use App\Messages\SmsMessage;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use Doctrine\Persistence\ObjectManager;
  9. use FOS\RestBundle\Controller\Annotations as Rest;
  10. use JetBrains\PhpStorm\NoReturn;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Messenger\MessageBusInterface;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. class HomeController extends AbstractController {
  17.     private STATIC string $SENDER "NEEMA-OPTIC";
  18.     private ObjectManager $em;
  19.     public function __construct(ManagerRegistry $managerRegistry){
  20.         $this->em $managerRegistry->getManager();
  21.     }
  22.     /**
  23.      * @Route("/",  name="homeRoute")
  24.      * @param Request $request
  25.      * @param MessageBusInterface $messageBus
  26.      * @return Response
  27.      */
  28.     public function homeAction(Request $requestMessageBusInterface $messageBus): Response
  29.     {
  30.         return $this->render('home.html.twig',[
  31.         ]);
  32.     }
  33.     /**
  34.      * @Route("/test/{campaignId}/{branchId}", name="test_paging")
  35.      */
  36.     public function test(Request $request$campaignId$branchIdMessageBusInterface $messageBus): Response
  37.     {
  38.         $pageSize 5000;
  39.         $pages 0;
  40.         $remainder 0;
  41.         /** @var BranchCampaign $branchCampaign */
  42.         $branchCampaign $this->em->getRepository(BranchCampaign::class)->findOneBy([
  43.             'campaign' => $campaignId,
  44.             'branch' => $branchId
  45.         ]);
  46.         $contactsCount 2//$branchCampaign->getContactsCount();
  47.         if ($contactsCount 0) {
  48.             $pages intval($contactsCount $pageSize);
  49.             $remainder $contactsCount - ($pageSize $pages);
  50.         }
  51.         for ($x 0$x $pages$x++) {
  52.             $offset $x == $x : ($x $pageSize);
  53.             $message = new SmsMessage($x$offset$pageSize$branchCampaign->getId());
  54.             $messageBus->dispatch($message);
  55.         }
  56.         if ($remainder 0) {
  57.             $offset $pages $pageSize;
  58.             $x = ($pages 1);
  59.             $message = new SmsMessage($x$offset$remainder$branchCampaign->getId());
  60.             $messageBus->dispatch($message);
  61.             dump("PAGE"$x);
  62.             dump("OFFSET"$offset);
  63.             dump("SIZE"$remainder);
  64.         }
  65.         return new Response("OK"Response::HTTP_OK);
  66.     }
  67. }