133 lines
4.9 KiB
PHP
Raw Normal View History

<?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();
2017-11-11 16:33:43 -05:00
// Get the autogenerated fields
$rs = hesk_dbQuery("SELECT `dt`, `order` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
WHERE `id` = " . intval($serviceMessage->id));
$row = hesk_dbFetchAssoc($rs);
$serviceMessage->dateCreated = $row['dt'];
$serviceMessage->order = intval($row['order']);
$this->close();
return $serviceMessage;
}
/**
* @param $heskSettings
* @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'];
2017-11-11 16:33:43 -05:00
$this->close();
return $serviceMessage;
}
function deleteServiceMessage($id, $heskSettings) {
$this->init();
hesk_dbQuery("DELETE FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
WHERE `id` = " . intval($id));
$this->close();
}
function resortAllServiceMessages($heskSettings) {
$this->init();
$rs = hesk_dbQuery("SELECT `id` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
ORDER BY `order` ASC");
$sortValue = 10;
while ($row = hesk_dbFetchAssoc($rs)) {
hesk_dbQuery("UPDATE `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
SET `order` = " . intval($sortValue) . "
WHERE `id` = " . intval($row['id']));
$sortValue += 10;
}
$this->close();
}
}