mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-16 15:24:26 +00:00
66 lines
2.0 KiB
PHP
66 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Chill is a software for social workers.
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
/*
|
|
* Chill is a software for social workers
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Chill\CalendarBundle\Service\ShortMessageNotification;
|
|
|
|
use Chill\CalendarBundle\Entity\Calendar;
|
|
use Chill\MainBundle\Service\ShortMessage\ShortMessage;
|
|
use Symfony\Component\Templating\EngineInterface;
|
|
|
|
class DefaultShortMessageForCalendarBuilder implements ShortMessageForCalendarBuilderInterface
|
|
{
|
|
private EngineInterface $engine;
|
|
|
|
public function __construct(
|
|
EngineInterface $engine
|
|
) {
|
|
$this->engine = $engine;
|
|
}
|
|
|
|
public function buildMessageForCalendar(Calendar $calendar): array
|
|
{
|
|
if (true !== $calendar->getSendSMS()) {
|
|
return [];
|
|
}
|
|
|
|
$toUsers = [];
|
|
|
|
foreach ($calendar->getPersons() as $person) {
|
|
if (false === $person->getAcceptSMS() || null === $person->getAcceptSMS() || null === $person->getMobilenumber()) {
|
|
continue;
|
|
}
|
|
|
|
if (Calendar::SMS_PENDING === $calendar->getSmsStatus()) {
|
|
$toUsers[] = new ShortMessage(
|
|
$this->engine->render('@ChillCalendar/CalendarShortMessage/short_message.txt.twig', ['calendar' => $calendar]),
|
|
$person->getMobilenumber(),
|
|
ShortMessage::PRIORITY_LOW
|
|
);
|
|
} elseif (Calendar::SMS_CANCEL_PENDING === $calendar->getSmsStatus()) {
|
|
$toUsers[] = new ShortMessage(
|
|
$this->engine->render('@ChillCalendar/CalendarShortMessage/short_message_canceled.txt.twig', ['calendar' => $calendar]),
|
|
$person->getMobilenumber(),
|
|
ShortMessage::PRIORITY_LOW
|
|
);
|
|
}
|
|
}
|
|
|
|
return $toUsers;
|
|
}
|
|
}
|