@ -2,8 +2,11 @@
namespace Controllers\Tickets;
namespace Controllers\Tickets;
use BusinessLogic\Helpers;
use BusinessLogic\Tickets\CreateTicketByCustomerModel;
use BusinessLogic\Tickets\TicketCreator;
use BusinessLogic\Tickets\TicketCreator;
use BusinessLogic\Tickets\TicketRetriever;
use BusinessLogic\Tickets\TicketRetriever;
use Controllers\JsonRetriever;
class TicketController {
class TicketController {
@ -11,7 +14,7 @@ class TicketController {
global $applicationContext, $hesk_settings, $userContext;
global $applicationContext, $hesk_settings, $userContext;
/* @var $ticketRetriever TicketRetriever */
/* @var $ticketRetriever TicketRetriever */
$ticketRetriever = $applicationContext->get['TicketRetriever' ];
$ticketRetriever = $applicationContext->get[TicketRetriever::class ];
output($ticketRetriever->getTicketById($id, $hesk_settings, $userContext));
output($ticketRetriever->getTicketById($id, $hesk_settings, $userContext));
}
}
@ -22,8 +25,38 @@ class TicketController {
/* @var $ticketCreator TicketCreator */
/* @var $ticketCreator TicketCreator */
$ticketCreator = $applicationContext->get[TicketCreator::class];
$ticketCreator = $applicationContext->get[TicketCreator::class];
//-- TODO Parse POST data
$jsonRequest = JsonRetriever::getJsonData();
$ticketCreator->createTicketByCustomer(null, $hesk_settings, $modsForHeskSettings, $userContext);
$ticketCreator->createTicketByCustomer($this->buildTicketRequestFromJson($jsonRequest), $hesk_settings, $modsForHeskSettings, $userContext);
}
/**
* @param $json array
* @return CreateTicketByCustomerModel
*/
private function buildTicketRequestFromJson($json) {
$ticketRequest = new CreateTicketByCustomerModel();
$ticketRequest->name = Helpers::safeArrayGet($json, 'name');
$ticketRequest->email = Helpers::safeArrayGet($json, 'email');
$ticketRequest->category = Helpers::safeArrayGet($json, 'category');
$ticketRequest->priority = Helpers::safeArrayGet($json, 'priority');
$ticketRequest->subject = Helpers::safeArrayGet($json, 'subject');
$ticketRequest->message = Helpers::safeArrayGet($json, 'message');
$ticketRequest->html = Helpers::safeArrayGet($json, 'html');
$ticketRequest->location = Helpers::safeArrayGet($json, 'location');
$ticketRequest->suggestedKnowledgebaseArticleIds = Helpers::safeArrayGet($json, 'suggestedArticles');
$ticketRequest->userAgent = Helpers::safeArrayGet($json, 'userAgent');
$ticketRequest->screenResolution = Helpers::safeArrayGet($json, 'screenResolution');
$ticketRequest->customFields = array();
$jsonCustomFields = Helpers::safeArrayGet($json, 'customFields');
if ($jsonCustomFields !== null & & !empty($jsonCustomFields)) {
foreach ($jsonCustomFields as $key => $value) {
$ticketRequest->customFields[intval($key)] = $value;
}
}
return $ticketRequest;
}
}
}
}