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;
|
2022-07-15 22:46:52 +02:00
|
|
|
use D3\Linkmobility4OXID\Application\Model\MessageTypes\Sms;
|
|
|
|
use Exception;
|
2022-07-04 16:33:49 +02:00
|
|
|
use OxidEsales\Eshop\Application\Model\Order;
|
|
|
|
|
|
|
|
class MessageSender
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @param Order $order
|
|
|
|
* @param $messageBody
|
2022-07-15 22:46:52 +02:00
|
|
|
* @throws Exception
|
2022-07-04 16:33:49 +02:00
|
|
|
*/
|
2022-07-08 15:13:05 +02:00
|
|
|
public function sendOrderFinishedMessage(Order $order, $messageBody)
|
2022-07-04 16:33:49 +02:00
|
|
|
{
|
2022-07-18 00:27:49 +02:00
|
|
|
if ((oxNew(Configuration::class))->sendOrderFinishedMessage()) {
|
2022-07-27 08:47:20 +02:00
|
|
|
$this->sendMessageByOrder($order, $messageBody);
|
2022-07-18 00:27:49 +02:00
|
|
|
}
|
2022-07-08 15:13:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Order $order
|
|
|
|
* @param $messageBody
|
2022-07-15 22:46:52 +02:00
|
|
|
* @throws Exception
|
2022-07-08 15:13:05 +02:00
|
|
|
*/
|
|
|
|
public function sendSendedNowMessage(Order $order, $messageBody)
|
|
|
|
{
|
2022-07-18 00:27:49 +02:00
|
|
|
if ((oxNew(Configuration::class))->sendOrderSendedNowMessage()) {
|
|
|
|
$this->sendMessageByOrder($order, $messageBody);
|
|
|
|
}
|
2022-07-08 15:13:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Order $order
|
|
|
|
* @param $messageBody
|
2022-07-15 22:46:52 +02:00
|
|
|
* @throws Exception
|
2022-07-08 15:13:05 +02:00
|
|
|
*/
|
|
|
|
public function sendCancelOrderMessage(Order $order, $messageBody)
|
|
|
|
{
|
2022-07-18 00:27:49 +02:00
|
|
|
if ((oxNew(Configuration::class))->sendOrderCanceledMessage()) {
|
|
|
|
$this->sendMessageByOrder($order, $messageBody);
|
|
|
|
}
|
2022-07-08 15:13:05 +02:00
|
|
|
}
|
|
|
|
|
2022-07-12 16:06:19 +02:00
|
|
|
/**
|
|
|
|
* @param Order $order
|
|
|
|
* @param $messageBody
|
2022-07-15 22:46:52 +02:00
|
|
|
* @throws Exception
|
2022-07-12 16:06:19 +02:00
|
|
|
*/
|
2022-07-18 00:27:49 +02:00
|
|
|
public function sendMessageByOrder(Order $order, $messageBody)
|
2022-07-08 15:13:05 +02:00
|
|
|
{
|
2022-07-18 00:27:49 +02:00
|
|
|
if ((bool) strlen(trim($messageBody)) === false) {
|
2022-07-04 16:33:49 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
2022-07-13 13:23:48 +02:00
|
|
|
$sms = oxNew(Sms::class, $messageBody);
|
2022-07-15 22:46:52 +02:00
|
|
|
$sms->sendOrderMessage($order);
|
2022-07-13 13:23:48 +02:00
|
|
|
} catch (noRecipientFoundException $e) {
|
|
|
|
}
|
2022-07-04 16:33:49 +02:00
|
|
|
}
|
2022-07-13 13:23:48 +02:00
|
|
|
}
|