diff --git a/api/admin/ticket/index.php b/api/admin/ticket/index.php index 2afd98bb..c153457b 100644 --- a/api/admin/ticket/index.php +++ b/api/admin/ticket/index.php @@ -15,6 +15,8 @@ $request_method = $_SERVER['REQUEST_METHOD']; if ($request_method == 'GET') { if (isset($_GET['id'])) { $results = get_ticket_for_id($hesk_settings, $_GET['id']); + } elseif (isset($_GET['trackid'])) { + $results = get_ticket_by_tracking_id($hesk_settings, $_GET['trackid']); } else { $results = get_ticket_for_id($hesk_settings); } diff --git a/api/dao/ticket_dao.php b/api/dao/ticket_dao.php index 84ee0ca4..739fff38 100644 --- a/api/dao/ticket_dao.php +++ b/api/dao/ticket_dao.php @@ -12,6 +12,12 @@ function get_ticket_for_id($hesk_settings, $id = NULL) { return NULL; } + $results = build_results($response); + + return $id == NULL ? $results : $results[0]; +} + +function build_results($response) { $results = []; while ($row = hesk_dbFetchAssoc($response)) { $row['id'] = intval($row['id']); @@ -34,5 +40,19 @@ function get_ticket_for_id($hesk_settings, $id = NULL) { $results[] = $row; } - return $id == NULL ? $results : $results[0]; + return $results; +} + +function get_ticket_by_tracking_id($hesk_settings, $trackid) { + $sql = "SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` WHERE `trackid` = '" + . hesk_dbEscape($trackid) . "'"; + + $response = hesk_dbQuery($sql); + + if (hesk_dbNumRows($response) == 0) { + return NULL; + } + + $results = build_results($response); + return $results[0]; } \ No newline at end of file