Working on moving service messages to an API endpoint
parent
fd4732d978
commit
c985f80452
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BusinessLogic\ServiceMessages;
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceMessage extends \BaseClass {
|
||||||
|
/* @var $id int */
|
||||||
|
public $id;
|
||||||
|
|
||||||
|
/* @var $dateCreated string */
|
||||||
|
public $dateCreated;
|
||||||
|
|
||||||
|
/* @var $createdBy int */
|
||||||
|
public $createdBy;
|
||||||
|
|
||||||
|
/* @var $title string */
|
||||||
|
public $title;
|
||||||
|
|
||||||
|
/* @var $message string */
|
||||||
|
public $message;
|
||||||
|
|
||||||
|
/* @var $style string */
|
||||||
|
public $style;
|
||||||
|
|
||||||
|
/* @var $published bool */
|
||||||
|
public $published;
|
||||||
|
|
||||||
|
/* @var $order int */
|
||||||
|
public $order;
|
||||||
|
|
||||||
|
/* @var $icon string */
|
||||||
|
public $icon;
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BusinessLogic\ServiceMessages;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO Test
|
||||||
|
use DataAccess\ServiceMessages\ServiceMessagesGateway;
|
||||||
|
|
||||||
|
class ServiceMessageHandler extends \BaseClass {
|
||||||
|
/* @var $serviceMessageGateway ServiceMessagesGateway */
|
||||||
|
private $serviceMessageGateway;
|
||||||
|
|
||||||
|
function __construct(ServiceMessagesGateway $serviceMessagesGateway) {
|
||||||
|
$this->serviceMessageGateway = $serviceMessagesGateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createServiceMessage($serviceMessage, $heskSettings) {
|
||||||
|
// TODO Validate
|
||||||
|
|
||||||
|
return $this->serviceMessageGateway->createServiceMessage($serviceMessage, $heskSettings);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BusinessLogic\ServiceMessages;
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceMessageStyle {
|
||||||
|
const NONE = 'NONE'; // 0
|
||||||
|
const SUCCESS = 'SUCCESS'; // 1
|
||||||
|
const INFO = 'INFO'; // 2
|
||||||
|
const NOTICE = 'NOTICE'; // 3
|
||||||
|
const ERROR = 'ERROR'; // 4
|
||||||
|
|
||||||
|
static function getStyleById($id) {
|
||||||
|
$styles = array(
|
||||||
|
0 => self::NONE,
|
||||||
|
1 => self::SUCCESS,
|
||||||
|
2 => self::INFO,
|
||||||
|
3 => self::NOTICE,
|
||||||
|
4 => self::ERROR
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isset($styles[$id])) {
|
||||||
|
throw new \Exception("Style {$id} is not a valid service message style.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $styles[$id];
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getIdForStyle($style) {
|
||||||
|
$styles = array(
|
||||||
|
self::NONE => 0,
|
||||||
|
self::SUCCESS => 1,
|
||||||
|
self::INFO => 2,
|
||||||
|
self::NOTICE => 3,
|
||||||
|
self::ERROR => 4
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isset($styles[$style])) {
|
||||||
|
throw new \Exception("Style {$style} is not a valid service message style.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $styles[$style];
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Controllers\ServiceMessages;
|
||||||
|
|
||||||
|
use BusinessLogic\Security\UserContext;
|
||||||
|
use BusinessLogic\ServiceMessages\ServiceMessage;
|
||||||
|
use BusinessLogic\ServiceMessages\ServiceMessageHandler;
|
||||||
|
use Controllers\JsonRetriever;
|
||||||
|
|
||||||
|
class ServiceMessagesController extends \BaseClass {
|
||||||
|
function post() {
|
||||||
|
global $applicationContext, $userContext, $hesk_settings;
|
||||||
|
|
||||||
|
/* @var $handler ServiceMessageHandler */
|
||||||
|
$handler = $applicationContext->get(ServiceMessageHandler::clazz());
|
||||||
|
|
||||||
|
$data = JsonRetriever::getJsonData();
|
||||||
|
$element = $handler->createServiceMessage($this->buildElementModel($data, $userContext), $hesk_settings);
|
||||||
|
|
||||||
|
return output($element, 201);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $data array
|
||||||
|
* @param $userContext UserContext
|
||||||
|
* @return ServiceMessage
|
||||||
|
*/
|
||||||
|
private function buildElementModel($data, $userContext) {
|
||||||
|
$serviceMessage = new ServiceMessage();
|
||||||
|
$serviceMessage->createdBy = $userContext->id;
|
||||||
|
$serviceMessage->icon = $data['icon'];
|
||||||
|
$serviceMessage->message = $data['message'];
|
||||||
|
$serviceMessage->published = $data['published'];
|
||||||
|
$serviceMessage->style = $data['style'];
|
||||||
|
|
||||||
|
return $serviceMessage;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace DataAccess\ServiceMessages;
|
||||||
|
|
||||||
|
|
||||||
|
use BusinessLogic\ServiceMessages\ServiceMessage;
|
||||||
|
use BusinessLogic\ServiceMessages\ServiceMessageStyle;
|
||||||
|
use DataAccess\CommonDao;
|
||||||
|
|
||||||
|
class ServiceMessagesGateway extends CommonDao {
|
||||||
|
/**
|
||||||
|
* @param $serviceMessage ServiceMessage
|
||||||
|
* @return ServiceMessage
|
||||||
|
*/
|
||||||
|
function createServiceMessage($serviceMessage, $heskSettings) {
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
// Get the latest service message order
|
||||||
|
$res = hesk_dbQuery("SELECT `order` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` ORDER BY `order` DESC LIMIT 1");
|
||||||
|
$row = hesk_dbFetchRow($res);
|
||||||
|
$myOrder = intval($row[0]) + 10;
|
||||||
|
|
||||||
|
$style = ServiceMessageStyle::getIdForStyle($serviceMessage->style);
|
||||||
|
$type = $serviceMessage->published ? 0 : 1;
|
||||||
|
|
||||||
|
// Insert service message into database
|
||||||
|
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` (`author`,`title`,`message`,`style`,`type`,`order`, `icon`) VALUES (
|
||||||
|
'" . intval($serviceMessage->createdBy) . "',
|
||||||
|
'" . hesk_dbEscape($serviceMessage->title) . "',
|
||||||
|
'" . hesk_dbEscape($serviceMessage->message) . "',
|
||||||
|
'" . hesk_dbEscape($style) . "',
|
||||||
|
'{$type}',
|
||||||
|
'{$myOrder}',
|
||||||
|
'" . hesk_dbEscape($serviceMessage->icon) . "'
|
||||||
|
)");
|
||||||
|
|
||||||
|
$serviceMessage->id = hesk_dbInsertID();
|
||||||
|
|
||||||
|
$this->close();
|
||||||
|
|
||||||
|
return $serviceMessage;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue