You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mods-for-HESK-Netsyms/api/DataAccess/Tickets/TicketGateway.php

85 lines
2.4 KiB
PHTML

<?php
namespace DataAccess\Tickets;
use BusinessLogic\Tickets\Ticket;
use DataAccess\CommonDao;
class TicketGateway extends CommonDao {
/**
* @param $id int
* @param $heskSettings array
* @return Ticket|null
*/
function getTicketById($id, $heskSettings) {
$this->init();
$rs = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets` WHERE `id` = " . intval($id));
if (hesk_dbNumRows($rs) === 0) {
return null;
}
$row = hesk_dbFetchAssoc($rs);
$linkedTicketsRs = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets` WHERE `parent` = " . intval($id));
$ticket = Ticket::fromDatabaseRow($row, $linkedTicketsRs, $heskSettings);
$this->close();
return $ticket;
}
/**
* @param $emailAddress string
* @param $heskSettings array
* @return array|null
*/
function getTicketsByEmail($emailAddress, $heskSettings) {
$this->init();
$rs = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets`
WHERE `email` = '" . hesk_dbEscape($emailAddress) . "'");
if (hesk_dbNumRows($rs) === 0) {
return null;
}
$tickets = array();
while ($row = hesk_dbFetchAssoc($rs)) {
$linkedTicketsRs =
hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets` WHERE `parent` = " . intval($row['id']));
$tickets[] = Ticket::fromDatabaseRow($row, $linkedTicketsRs, $heskSettings);
}
$this->close();
return $tickets;
}
/**
* @param $trackingId string
* @param $heskSettings array
* @return Ticket|null
*/
function getTicketByTrackingId($trackingId, $heskSettings) {
$this->init();
$rs = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets` WHERE `id` = " . intval($trackingId));
if (hesk_dbNumRows($rs) === 0) {
return null;
}
$row = hesk_dbFetchAssoc($rs);
$linkedTicketsRs = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "tickets` WHERE `parent` = " . intval($trackingId));
$ticket = Ticket::fromDatabaseRow($row, $linkedTicketsRs, $heskSettings);
$this->close();
return $ticket;
}
}