<?php
namespace App\Controller;
use App\Entity\PMSConnectorSettings;
use App\Util\CommandUtil;
use App\Util\EmailUtil;
use App\Util\PMSConnectorUtil;
use App\Util\PropertyUtil;
use App\Util\ReminderUtil;
use App\Util\SMSUtil;
use App\Util\SyncUtil;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class CronController extends AbstractController
{
/**
* @Route("/cron/sms", name="cron_sms")
* @param SMSUtil $SMSUtil
* @return Response
*/
public function sms(SMSUtil $SMSUtil)
{
// die("sms");
$SMSUtil->sendSMSQueue(10);
return Response::create('DONE');
}
/**
* @Route("/cron/sms/status", name="cron_sms_status")
* @param SMSUtil $SMSUtil
* @return Response
*/
public function smsStatus(SMSUtil $SMSUtil)
{
$SMSUtil->checkSMSStatus();
return Response::create('DONE');
}
/**
* @Route("/cron/emails", name="cron_emails")
* @param EmailUtil $emailUtil
* @return Response
*/
public function emails(EmailUtil $emailUtil)
{
$emailUtil->sendEmailQueue(300);
return Response::create('DONE');
}
/**
* @Route("/cron/commands", name="cron_command_queue")
* @param CommandUtil $commandUtil
* @return Response
*/
public function commandQueue(CommandUtil $commandUtil)
{
$commandUtil->processQueue(200);
return Response::create('DONE');
}
/**
* @Route("/cron/import", name="cron_import")
* @param EmailUtil $emailUtil
* @return Response
*/
public function import(PropertyUtil $propertyUtil, PMSConnectorUtil $PMSConnectorUtil, RequestStack $requestStack)
{
$monitoringId = $requestStack->getCurrentRequest()->get('monitoringId');
$reservationNumber = $requestStack->getCurrentRequest()->get('reservationNumber');
$property = $propertyUtil->getPropertyByMonitoringId($monitoringId);
if (empty($property)) {
return Response::create('Property not found', Response::HTTP_NOT_FOUND);
}
if (!$property->getPmsSettings() instanceof PMSConnectorSettings) {
return Response::create('DONE');
}
if ($property->getPmsSettings()->getPms()->getIdentifier() != 'CZMI') {
return Response::create('DONE');
}
$PMSConnectorUtil->getContractByNumber($property,$reservationNumber);
return Response::create('DONE');
}
}