Add more endpoints for service messages
This commit is contained in:
parent
311a48487d
commit
6bef518ffa
@ -42,13 +42,44 @@ class ServiceMessageHandler extends \BaseClass {
|
|||||||
return $this->serviceMessageGateway->createServiceMessage($serviceMessage, $heskSettings);
|
return $this->serviceMessageGateway->createServiceMessage($serviceMessage, $heskSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getServiceMessages($heskSettings) {
|
||||||
|
return $this->serviceMessageGateway->getServiceMessages($heskSettings);
|
||||||
|
}
|
||||||
|
|
||||||
|
function editServiceMessage($serviceMessage, $heskSettings) {
|
||||||
|
$this->validate($serviceMessage, false);
|
||||||
|
|
||||||
|
if ($serviceMessage->icon === null) {
|
||||||
|
switch ($serviceMessage->style) {
|
||||||
|
case ServiceMessageStyle::NONE:
|
||||||
|
$serviceMessage->icon = '';
|
||||||
|
break;
|
||||||
|
case ServiceMessageStyle::INFO:
|
||||||
|
$serviceMessage->icon = 'fa fa-comment';
|
||||||
|
break;
|
||||||
|
case ServiceMessageStyle::NOTICE:
|
||||||
|
$serviceMessage->icon = 'fa fa-exclamation-triangle';
|
||||||
|
break;
|
||||||
|
case ServiceMessageStyle::ERROR:
|
||||||
|
$serviceMessage->icon = 'fa fa-times-circle';
|
||||||
|
break;
|
||||||
|
case ServiceMessageStyle::SUCCESS:
|
||||||
|
$serviceMessage->icon = 'fa fa-check-circle';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->serviceMessageGateway->updateServiceMessage($serviceMessage, $heskSettings);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $serviceMessage ServiceMessage
|
* @param $serviceMessage ServiceMessage
|
||||||
|
* @param bool $isNew
|
||||||
* @throws ValidationException
|
* @throws ValidationException
|
||||||
*/
|
*/
|
||||||
private function validate($serviceMessage) {
|
private function validate($serviceMessage, $isNew = true) {
|
||||||
$validationModel = new ValidationModel();
|
$validationModel = new ValidationModel();
|
||||||
if ($serviceMessage->createdBy < 1) {
|
if ($isNew && $serviceMessage->createdBy < 1) {
|
||||||
$validationModel->errorKeys[] = 'MISSING_CREATOR';
|
$validationModel->errorKeys[] = 'MISSING_CREATOR';
|
||||||
}
|
}
|
||||||
if ($serviceMessage->message === null || trim($serviceMessage->message) === '') {
|
if ($serviceMessage->message === null || trim($serviceMessage->message) === '') {
|
||||||
|
@ -8,6 +8,15 @@ use BusinessLogic\ServiceMessages\ServiceMessageHandler;
|
|||||||
use Controllers\JsonRetriever;
|
use Controllers\JsonRetriever;
|
||||||
|
|
||||||
class ServiceMessagesController extends \BaseClass {
|
class ServiceMessagesController extends \BaseClass {
|
||||||
|
function get() {
|
||||||
|
global $applicationContext, $hesk_settings;
|
||||||
|
|
||||||
|
/* @var $handler ServiceMessageHandler */
|
||||||
|
$handler = $applicationContext->get(ServiceMessageHandler::clazz());
|
||||||
|
|
||||||
|
return output($handler->getServiceMessages($hesk_settings));
|
||||||
|
}
|
||||||
|
|
||||||
function post() {
|
function post() {
|
||||||
global $applicationContext, $userContext, $hesk_settings;
|
global $applicationContext, $userContext, $hesk_settings;
|
||||||
|
|
||||||
@ -20,14 +29,35 @@ class ServiceMessagesController extends \BaseClass {
|
|||||||
return output($element, 201);
|
return output($element, 201);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function put() {
|
||||||
|
global $applicationContext, $hesk_settings;
|
||||||
|
|
||||||
|
/* @var $handler ServiceMessageHandler */
|
||||||
|
$handler = $applicationContext->get(ServiceMessageHandler::clazz());
|
||||||
|
|
||||||
|
$data = JsonRetriever::getJsonData();
|
||||||
|
$element = $handler->editServiceMessage($this->buildElementModel($data, null, false), $hesk_settings);
|
||||||
|
|
||||||
|
return output($element);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $data array
|
* @param $data array
|
||||||
* @param $userContext UserContext
|
* @param $userContext UserContext
|
||||||
* @return ServiceMessage
|
* @return ServiceMessage
|
||||||
*/
|
*/
|
||||||
private function buildElementModel($data, $userContext) {
|
private function buildElementModel($data, $userContext, $creating = true) {
|
||||||
$serviceMessage = new ServiceMessage();
|
$serviceMessage = new ServiceMessage();
|
||||||
|
|
||||||
|
if (!$creating) {
|
||||||
|
$serviceMessage->id = $data['id'];
|
||||||
|
$serviceMessage->order = $data['order'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($creating) {
|
||||||
$serviceMessage->createdBy = $userContext->id;
|
$serviceMessage->createdBy = $userContext->id;
|
||||||
|
}
|
||||||
|
|
||||||
$serviceMessage->title = $data['title'];
|
$serviceMessage->title = $data['title'];
|
||||||
$serviceMessage->icon = $data['icon'];
|
$serviceMessage->icon = $data['icon'];
|
||||||
$serviceMessage->message = $data['message'];
|
$serviceMessage->message = $data['message'];
|
||||||
|
@ -42,7 +42,59 @@ class ServiceMessagesGateway extends CommonDao {
|
|||||||
WHERE `id` = " . intval($serviceMessage->id));
|
WHERE `id` = " . intval($serviceMessage->id));
|
||||||
$row = hesk_dbFetchAssoc($rs);
|
$row = hesk_dbFetchAssoc($rs);
|
||||||
$serviceMessage->dateCreated = $row['dt'];
|
$serviceMessage->dateCreated = $row['dt'];
|
||||||
$serviceMessage->order = $row['order'];
|
$serviceMessage->order = intval($row['order']);
|
||||||
|
|
||||||
|
$this->close();
|
||||||
|
|
||||||
|
return $serviceMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getServiceMessages($heskSettings) {
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
$serviceMessages = array();
|
||||||
|
|
||||||
|
$rs = hesk_dbQuery("SELECT * FROM `". hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` ORDER BY `id`");
|
||||||
|
while ($row = hesk_dbFetchAssoc($rs)) {
|
||||||
|
$serviceMessage = new ServiceMessage();
|
||||||
|
$serviceMessage->id = $row['id'];
|
||||||
|
$serviceMessage->published = intval($row['type']) !== 1;
|
||||||
|
$serviceMessage->createdBy = intval($row['author']);
|
||||||
|
$serviceMessage->order = intval($row['order']);
|
||||||
|
$serviceMessage->dateCreated = $row['dt'];
|
||||||
|
$serviceMessage->title = $row['title'];
|
||||||
|
$serviceMessage->message = $row['message'];
|
||||||
|
$serviceMessage->style = ServiceMessageStyle::getStyleById($row['style']);
|
||||||
|
$serviceMessage->icon = $row['icon'];
|
||||||
|
$serviceMessages[] = $serviceMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->close();
|
||||||
|
|
||||||
|
return $serviceMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateServiceMessage($serviceMessage, $heskSettings) {
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
$style = ServiceMessageStyle::getIdForStyle($serviceMessage->style);
|
||||||
|
$type = $serviceMessage->published ? 0 : 1;
|
||||||
|
|
||||||
|
hesk_dbQuery("UPDATE `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
|
||||||
|
SET `title` = '" . hesk_dbEscape($serviceMessage->title) . "',
|
||||||
|
`message` = '" . hesk_dbEscape($serviceMessage->message) . "',
|
||||||
|
`style` = '" . intval($style) . "',
|
||||||
|
`type` = " . intval($type) . ",
|
||||||
|
`icon` = '" . hesk_dbEscape($serviceMessage->icon) . "'
|
||||||
|
WHERE `id` = " . intval($serviceMessage->id));
|
||||||
|
|
||||||
|
$otherFieldsRs = hesk_dbQuery("SELECT `dt`, `author`, `order` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
|
||||||
|
WHERE `id` = " . intval($serviceMessage->id));
|
||||||
|
$otherFields = hesk_dbFetchAssoc($otherFieldsRs);
|
||||||
|
|
||||||
|
$serviceMessage->order = intval($otherFields['order']);
|
||||||
|
$serviceMessage->createdBy = intval($otherFields['author']);
|
||||||
|
$serviceMessage->dateCreated = $otherFields['dt'];
|
||||||
|
|
||||||
$this->close();
|
$this->close();
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ Link::all(array(
|
|||||||
// Settings
|
// Settings
|
||||||
'/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()),
|
'/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()),
|
||||||
// Service Messages
|
// Service Messages
|
||||||
'/v1/service-messages' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(), array(RequestMethod::POST)),
|
'/v1/service-messages' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(), array(RequestMethod::GET, RequestMethod::POST, RequestMethod::PUT)),
|
||||||
|
|
||||||
/* Internal use only routes */
|
/* Internal use only routes */
|
||||||
// Resend email response
|
// Resend email response
|
||||||
|
Loading…
x
Reference in New Issue
Block a user