Only allow getTicketById

This commit is contained in:
Mike Koch 2015-01-02 22:05:40 -05:00
parent d7876bfe50
commit 1a502e7a1e
2 changed files with 5 additions and 39 deletions

View File

@ -1,6 +1,6 @@
<?php <?php
require('/../models/ticket.php'); require(__DIR__ . '/../models/ticket.php');
class TicketRepository { class TicketRepository {
@ -9,8 +9,8 @@ class TicketRepository {
} }
public static function getTicketForId($id, $settings) { public static function getTicketForId($id, $settings) {
$connection = new mysqli($settings['db_host'], $settings['db_user'], $settings['db_pass'], $settings['db_name']); $connection = new mysqli($settings['db_host'], $settings['db_user'], $settings['db_pass'], $settings['db_name']);
if ($connection->connect_error) if ($connection->connect_error)
{ {
return ('An error occurred when establishing a connection to the database.'); return ('An error occurred when establishing a connection to the database.');
@ -26,35 +26,6 @@ class TicketRepository {
return self::generateTicketModel($result); return self::generateTicketModel($result);
} }
public static function getTicketForTrackingId($id, $settings)
{
$connection = new mysqli($settings['db_host'], $settings['db_user'], $settings['db_pass'], $settings['db_name']);
if ($connection->connect_error)
{
return ('An error occurred when establishing a connection to the database.');
}
$sql = self::getDefaultSql($settings).
'WHERE T.trackid = '.$id;
$results = $connection->query($sql);
//-- There should only be one result as Tracking IDs should be unique. If there are two, return a 422 response.
if ($results->num_rows > 1)
{
header(http_response_code(422));
return;
} elseif ($results->num_rows == 0)
{
//-- No ticket found. Return a 404.
header(http_response_code(404));
return;
} else {
$result = $results->fetch_assoc();
$connection->close();
return self::generateTicketModel($result);
}
}
private static function generateTicketModel($result) { private static function generateTicketModel($result) {
$ticket = new Ticket(); $ticket = new Ticket();

View File

@ -3,21 +3,16 @@
//-- This service will return ticket information for a specific ticket ID (NOT TRACKING ID) //-- This service will return ticket information for a specific ticket ID (NOT TRACKING ID)
header('Content-Type: application/json'); header('Content-Type: application/json');
define('IN_SCRIPT',1); define('IN_SCRIPT',1);
define('HESK_PATH','/../../'); define('HESK_PATH','../../');
require(HESK_PATH . 'hesk_settings.inc.php'); include(HESK_PATH . 'hesk_settings.inc.php');
include('/../repositories/ticketRepository.php'); include(__DIR__ . '/../repositories/ticketRepository.php');
if(isset($_GET['id'])) if(isset($_GET['id']))
{ {
$ticket = TicketRepository::getTicketForId($_GET['id'], $hesk_settings); $ticket = TicketRepository::getTicketForId($_GET['id'], $hesk_settings);
echo json_encode($ticket); echo json_encode($ticket);
} }
elseif (isset($_GET['trackingid']))
{
$ticket = TicketRepository::getTicketForTrackingId($_GET['trackingid'], $hesk_settings);
echo json_encode($ticket);
}
else else
{ {
header(http_response_code(400)); header(http_response_code(400));