Working on audit for API, trying to fix email issues
This commit is contained in:
parent
c6f4e4ce3e
commit
7e6a5b2ba5
19
api/BusinessLogic/DateTimeHelpers.php
Normal file
19
api/BusinessLogic/DateTimeHelpers.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BusinessLogic;
|
||||||
|
|
||||||
|
|
||||||
|
class DateTimeHelpers {
|
||||||
|
static function heskDate($heskSettings, $dt = '', $isStr = true, $return_str = true) {
|
||||||
|
|
||||||
|
if (!$dt) {
|
||||||
|
$dt = time();
|
||||||
|
} elseif ($isStr) {
|
||||||
|
$dt = strtotime($dt);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return formatted date
|
||||||
|
return $return_str ? date($heskSettings['timeformat'], $dt) : $dt;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -164,7 +164,7 @@ class Ticket extends \BaseClass {
|
|||||||
public $name;
|
public $name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array|null
|
* @var string[]|null
|
||||||
*/
|
*/
|
||||||
public $email;
|
public $email;
|
||||||
|
|
||||||
|
@ -2,11 +2,13 @@
|
|||||||
|
|
||||||
namespace BusinessLogic\Tickets;
|
namespace BusinessLogic\Tickets;
|
||||||
|
|
||||||
|
use BusinessLogic\DateTimeHelpers;
|
||||||
use BusinessLogic\Emails\Addressees;
|
use BusinessLogic\Emails\Addressees;
|
||||||
use BusinessLogic\Emails\EmailSenderHelper;
|
use BusinessLogic\Emails\EmailSenderHelper;
|
||||||
use BusinessLogic\Emails\EmailTemplateRetriever;
|
use BusinessLogic\Emails\EmailTemplateRetriever;
|
||||||
use BusinessLogic\Exceptions\ValidationException;
|
use BusinessLogic\Exceptions\ValidationException;
|
||||||
use BusinessLogic\Statuses\DefaultStatusForAction;
|
use BusinessLogic\Statuses\DefaultStatusForAction;
|
||||||
|
use DataAccess\AuditTrail\AuditTrailGateway;
|
||||||
use DataAccess\Security\UserGateway;
|
use DataAccess\Security\UserGateway;
|
||||||
use DataAccess\Settings\ModsForHeskSettingsGateway;
|
use DataAccess\Settings\ModsForHeskSettingsGateway;
|
||||||
use DataAccess\Statuses\StatusGateway;
|
use DataAccess\Statuses\StatusGateway;
|
||||||
@ -56,6 +58,9 @@ class TicketCreator extends \BaseClass {
|
|||||||
/* @var $modsForHeskSettingsGateway ModsForHeskSettingsGateway */
|
/* @var $modsForHeskSettingsGateway ModsForHeskSettingsGateway */
|
||||||
private $modsForHeskSettingsGateway;
|
private $modsForHeskSettingsGateway;
|
||||||
|
|
||||||
|
/* @var $auditTrailGateway AuditTrailGateway */
|
||||||
|
private $auditTrailGateway;
|
||||||
|
|
||||||
function __construct(NewTicketValidator $newTicketValidator,
|
function __construct(NewTicketValidator $newTicketValidator,
|
||||||
TrackingIdGenerator $trackingIdGenerator,
|
TrackingIdGenerator $trackingIdGenerator,
|
||||||
Autoassigner $autoassigner,
|
Autoassigner $autoassigner,
|
||||||
@ -64,7 +69,8 @@ class TicketCreator extends \BaseClass {
|
|||||||
VerifiedEmailChecker $verifiedEmailChecker,
|
VerifiedEmailChecker $verifiedEmailChecker,
|
||||||
EmailSenderHelper $emailSenderHelper,
|
EmailSenderHelper $emailSenderHelper,
|
||||||
UserGateway $userGateway,
|
UserGateway $userGateway,
|
||||||
ModsForHeskSettingsGateway $modsForHeskSettingsGateway) {
|
ModsForHeskSettingsGateway $modsForHeskSettingsGateway,
|
||||||
|
AuditTrailGateway $auditTrailGateway) {
|
||||||
$this->newTicketValidator = $newTicketValidator;
|
$this->newTicketValidator = $newTicketValidator;
|
||||||
$this->trackingIdGenerator = $trackingIdGenerator;
|
$this->trackingIdGenerator = $trackingIdGenerator;
|
||||||
$this->autoassigner = $autoassigner;
|
$this->autoassigner = $autoassigner;
|
||||||
@ -74,6 +80,7 @@ class TicketCreator extends \BaseClass {
|
|||||||
$this->emailSenderHelper = $emailSenderHelper;
|
$this->emailSenderHelper = $emailSenderHelper;
|
||||||
$this->userGateway = $userGateway;
|
$this->userGateway = $userGateway;
|
||||||
$this->modsForHeskSettingsGateway = $modsForHeskSettingsGateway;
|
$this->modsForHeskSettingsGateway = $modsForHeskSettingsGateway;
|
||||||
|
$this->auditTrailGateway = $auditTrailGateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -113,7 +120,7 @@ class TicketCreator extends \BaseClass {
|
|||||||
|
|
||||||
// Transform one-to-one properties
|
// Transform one-to-one properties
|
||||||
$ticket->name = $ticketRequest->name;
|
$ticket->name = $ticketRequest->name;
|
||||||
$ticket->email = $ticketRequest->email;
|
$ticket->email = $this->getAddressees($ticketRequest->email);
|
||||||
$ticket->priorityId = $ticketRequest->priority;
|
$ticket->priorityId = $ticketRequest->priority;
|
||||||
$ticket->categoryId = $ticketRequest->category;
|
$ticket->categoryId = $ticketRequest->category;
|
||||||
$ticket->subject = $ticketRequest->subject;
|
$ticket->subject = $ticketRequest->subject;
|
||||||
@ -147,6 +154,9 @@ class TicketCreator extends \BaseClass {
|
|||||||
$ticket->timeWorked = '00:00:00';
|
$ticket->timeWorked = '00:00:00';
|
||||||
$ticket->lastReplier = 0;
|
$ticket->lastReplier = 0;
|
||||||
|
|
||||||
|
$this->auditTrailGateway->insertAuditTrailRecord($ticket->id, AuditTrailEntityType::TICKET,
|
||||||
|
'audit_created', DateTimeHelpers::heskDate($heskSettings), array(), $heskSettings);
|
||||||
|
|
||||||
$addressees = new Addressees();
|
$addressees = new Addressees();
|
||||||
$addressees->to = $this->getAddressees($ticket->email);
|
$addressees->to = $this->getAddressees($ticket->email);
|
||||||
|
|
||||||
|
28
api/DataAccess/AuditTrail/AuditTrailGateway.php
Normal file
28
api/DataAccess/AuditTrail/AuditTrailGateway.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace DataAccess\AuditTrail;
|
||||||
|
|
||||||
|
|
||||||
|
use DataAccess\CommonDao;
|
||||||
|
|
||||||
|
class AuditTrailGateway extends CommonDao {
|
||||||
|
function insertAuditTrailRecord($entityId, $entityType, $languageKey, $date, $replacementValues, $heskSettings) {
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . "audit_trail` (`entity_id`, `entity_type`,
|
||||||
|
`language_key`, `date`) VALUES (" . intval($entityId) . ", '" . hesk_dbEscape($entityType) . "',
|
||||||
|
'" . hesk_dbEscape($languageKey) . "', '" . hesk_dbEscape($date) . "')");
|
||||||
|
|
||||||
|
$auditId = hesk_dbInsertID();
|
||||||
|
|
||||||
|
foreach ($replacementValues as $replacementIndex => $replacementValue) {
|
||||||
|
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . "audit_trail_to_replacement_values`
|
||||||
|
(`audit_trail_id`, `replacement_index`, `replacement_value`) VALUES (" . intval($auditId) . ",
|
||||||
|
" . intval($replacementIndex) . ", '" . hesk_dbEscape($replacementValue) . "')");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->close();
|
||||||
|
|
||||||
|
return $auditId;
|
||||||
|
}
|
||||||
|
}
|
@ -207,6 +207,8 @@ class TicketGateway extends CommonDao {
|
|||||||
$ipAddress = $ticket->ipAddress !== null
|
$ipAddress = $ticket->ipAddress !== null
|
||||||
&& $ticket->ipAddress !== '' ? $ticket->ipAddress : '';
|
&& $ticket->ipAddress !== '' ? $ticket->ipAddress : '';
|
||||||
|
|
||||||
|
$emailAddresses = implode(';', $ticket->email);
|
||||||
|
|
||||||
$tableName = $isEmailVerified ? 'tickets' : 'stage_tickets';
|
$tableName = $isEmailVerified ? 'tickets' : 'stage_tickets';
|
||||||
|
|
||||||
$sql = "INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . $tableName ."`
|
$sql = "INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . $tableName ."`
|
||||||
@ -242,7 +244,7 @@ class TicketGateway extends CommonDao {
|
|||||||
(
|
(
|
||||||
'" . hesk_dbEscape($ticket->trackingId) . "',
|
'" . hesk_dbEscape($ticket->trackingId) . "',
|
||||||
'" . hesk_dbEscape($ticket->name) . "',
|
'" . hesk_dbEscape($ticket->name) . "',
|
||||||
'" . hesk_dbEscape($ticket->email) . "',
|
'" . hesk_dbEscape($emailAddresses) . "',
|
||||||
'" . intval($ticket->categoryId) . "',
|
'" . intval($ticket->categoryId) . "',
|
||||||
'" . intval($ticket->priorityId) . "',
|
'" . intval($ticket->priorityId) . "',
|
||||||
'" . hesk_dbEscape($ticket->subject) . "',
|
'" . hesk_dbEscape($ticket->subject) . "',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user