<?php
namespace App\Web;
use App\Entity\BranchCampaign;
use App\Entity\Contact;
use App\Messages\SendWhatsAppMessage;
use App\Messages\SmsMessage;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use FOS\RestBundle\Controller\Annotations as Rest;
use JetBrains\PhpStorm\NoReturn;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController {
private STATIC string $SENDER = "NEEMA-OPTIC";
private ObjectManager $em;
public function __construct(ManagerRegistry $managerRegistry){
$this->em = $managerRegistry->getManager();
}
/**
* @Route("/", name="homeRoute")
* @param Request $request
* @param MessageBusInterface $messageBus
* @return Response
*/
public function homeAction(Request $request, MessageBusInterface $messageBus): Response
{
return $this->render('home.html.twig',[
]);
}
/**
* @Route("/test/{campaignId}/{branchId}", name="test_paging")
*/
public function test(Request $request, $campaignId, $branchId, MessageBusInterface $messageBus): Response
{
$pageSize = 5000;
$pages = 0;
$remainder = 0;
/** @var BranchCampaign $branchCampaign */
$branchCampaign = $this->em->getRepository(BranchCampaign::class)->findOneBy([
'campaign' => $campaignId,
'branch' => $branchId
]);
$contactsCount = 2; //$branchCampaign->getContactsCount();
if ($contactsCount > 0) {
$pages = intval($contactsCount / $pageSize);
$remainder = $contactsCount - ($pageSize * $pages);
}
for ($x = 0; $x < $pages; $x++) {
$offset = $x == 0 ? $x : ($x * $pageSize);
$message = new SmsMessage($x, $offset, $pageSize, $branchCampaign->getId());
$messageBus->dispatch($message);
}
if ($remainder > 0) {
$offset = $pages * $pageSize;
$x = ($pages + 1);
$message = new SmsMessage($x, $offset, $remainder, $branchCampaign->getId());
$messageBus->dispatch($message);
dump("PAGE", $x);
dump("OFFSET", $offset);
dump("SIZE", $remainder);
}
return new Response("OK", Response::HTTP_OK);
}
}