linkmobility4oxid/src/Application/Model/MessageSender.php

120 lines
3.4 KiB
PHP
Raw Normal View History

2022-07-04 16:33:49 +02:00
<?php
/**
2022-07-13 13:21:52 +02:00
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* https://www.d3data.de
2022-07-04 16:33:49 +02:00
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
2022-07-13 13:21:52 +02:00
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link https://www.oxidmodule.com
2022-07-04 16:33:49 +02:00
*/
2022-07-13 13:21:52 +02:00
declare(strict_types=1);
2022-07-04 16:33:49 +02:00
namespace D3\Linkmobility4OXID\Application\Model;
use D3\Linkmobility4OXID\Application\Model\Exceptions\noRecipientFoundException;
use D3\Linkmobility4OXID\Application\Model\MessageTypes\Sms;
use D3\LinkmobilityClient\LoggerHandler;
use Exception;
2022-07-04 16:33:49 +02:00
use OxidEsales\Eshop\Application\Model\Order;
use OxidEsales\Eshop\Core\Registry;
2022-07-04 16:33:49 +02:00
class MessageSender
{
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $messageBody
* @return void
* @throws Exception
2022-07-04 16:33:49 +02:00
*/
2022-07-27 09:27:59 +02:00
public function sendOrderFinishedMessage(Order $order, string $messageBody): void
2022-07-04 16:33:49 +02:00
{
try {
if ( $this->getConfiguration()->sendOrderFinishedMessage() ) {
$this->sendMessageByOrder( $order, $messageBody );
}
} catch (noRecipientFoundException $e) {
/** @var LoggerHandler $loggerHandler */
$loggerHandler = d3GetOxidDIC()->get(LoggerHandler::class);
$loggerHandler->getLogger()->debug($e->getMessage(), [$order]);
2022-07-18 00:27:49 +02:00
}
}
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $messageBody
* @return void
* @throws Exception
*/
2022-07-27 09:27:59 +02:00
public function sendSendedNowMessage(Order $order, string $messageBody): void
{
try {
if ( $this->getConfiguration()->sendOrderSendedNowMessage() ) {
$this->sendMessageByOrder( $order, $messageBody );
}
} catch (noRecipientFoundException $e) {
/** @var LoggerHandler $loggerHandler */
$loggerHandler = d3GetOxidDIC()->get(LoggerHandler::class);
$loggerHandler->getLogger()->debug($e->getMessage(), [$order]);
2022-07-18 00:27:49 +02:00
}
}
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $messageBody
* @return void
* @throws Exception
*/
2022-07-27 09:27:59 +02:00
public function sendCancelOrderMessage(Order $order, string $messageBody): void
{
try {
if ($this->getConfiguration()->sendOrderCanceledMessage()) {
$this->sendMessageByOrder($order, $messageBody);
}
} catch (noRecipientFoundException $e) {
/** @var LoggerHandler $loggerHandler */
$loggerHandler = d3GetOxidDIC()->get(LoggerHandler::class);
$loggerHandler->getLogger()->debug($e->getMessage(), [$order]);
2022-07-18 00:27:49 +02:00
}
}
2022-07-12 16:06:19 +02:00
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $messageBody
*
2022-07-27 09:27:59 +02:00
* @return void
* @throws noRecipientFoundException
2022-07-12 16:06:19 +02:00
*/
2022-07-27 09:27:59 +02:00
public function sendMessageByOrder(Order $order, string $messageBody): void
{
2023-01-10 23:35:52 +01:00
if ((bool) strlen(trim($messageBody)) === false) {
2022-07-04 16:33:49 +02:00
return;
2023-01-10 23:35:52 +01:00
}
2022-07-04 16:33:49 +02:00
$sms = $this->getSms($messageBody);
$sms->sendOrderMessage($order);
2022-07-04 16:33:49 +02:00
}
2023-01-05 23:33:29 +01:00
/**
* @param string $message
* @return Sms
*/
protected function getSms(string $message): Sms
{
return oxNew(Sms::class, $message);
}
2023-01-05 23:33:29 +01:00
/**
* @return Configuration
*/
protected function getConfiguration(): Configuration
{
/** @var Configuration $configuration */
$configuration = d3GetOxidDIC()->get(Configuration::class);
return $configuration;
}
2022-07-13 13:23:48 +02:00
}