Working on refactoring the calendar API
This commit is contained in:
parent
5ee4ed5864
commit
13161696ae
18
api/BusinessLogic/Calendar/CalendarHandler.php
Normal file
18
api/BusinessLogic/Calendar/CalendarHandler.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BusinessLogic\Calendar;
|
||||||
|
|
||||||
|
|
||||||
|
use DataAccess\Calendar\CalendarGateway;
|
||||||
|
|
||||||
|
class CalendarHandler extends \BaseClass {
|
||||||
|
private $calendarGateway;
|
||||||
|
|
||||||
|
public function __construct(CalendarGateway $calendarGateway) {
|
||||||
|
$this->calendarGateway = $calendarGateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEventsForStaff($startTime, $endTime, $searchEventsFilter, $heskSettings) {
|
||||||
|
return $this->calendarGateway->getEventsForStaff($startTime, $endTime, $searchEventsFilter, $heskSettings);
|
||||||
|
}
|
||||||
|
}
|
23
api/Controllers/Calendar/CalendarController.php
Normal file
23
api/Controllers/Calendar/CalendarController.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Controllers\Calendar;
|
||||||
|
|
||||||
|
|
||||||
|
use BusinessLogic\Calendar\CalendarHandler;
|
||||||
|
use BusinessLogic\Calendar\SearchEventsFilter;
|
||||||
|
|
||||||
|
class CalendarController extends \BaseClass {
|
||||||
|
function get() {
|
||||||
|
global $applicationContext, $hesk_settings;
|
||||||
|
|
||||||
|
$startTime = isset($_GET['start']) ? $_GET['start'] : round(microtime(true) * 1000);
|
||||||
|
$endTime = isset($_GET['end']) ? $_GET['end'] : round(microtime(true) * 1000);
|
||||||
|
|
||||||
|
/* @var $calendarHandler CalendarHandler */
|
||||||
|
$calendarHandler = $applicationContext->get(CalendarHandler::clazz());
|
||||||
|
|
||||||
|
$events = $calendarHandler->getEventsForStaff($startTime, $endTime, new SearchEventsFilter(), $hesk_settings);
|
||||||
|
|
||||||
|
return output($events);
|
||||||
|
}
|
||||||
|
}
|
@ -86,10 +86,38 @@ class CalendarGateway extends CommonDao {
|
|||||||
AND (`owner` = " . $searchEventsFilter->reminderUserId;
|
AND (`owner` = " . $searchEventsFilter->reminderUserId;
|
||||||
|
|
||||||
if ($searchEventsFilter->includeUnassignedTickets) {
|
if ($searchEventsFilter->includeUnassignedTickets) {
|
||||||
$sql .= "";
|
$sql .= " OR `owner` = 0 ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($searchEventsFilter->includeTicketsAssignedToOthers) {
|
||||||
|
$sql .= " OR `owner` NOT IN (0, " . $searchEventsFilter->reminderUserId . ") ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
|
if (!empty($searchEventsFilter->categories)) {
|
||||||
|
$categoriesAsString = implode(',', $searchEventsFilter->categories);
|
||||||
|
$sql .= " AND `events`.`category` IN (" . $categoriesAsString . ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
$rs = hesk_dbQuery($sql);
|
||||||
|
while ($row = hesk_dbFetchAssoc($rs)) {
|
||||||
|
$event = new TicketEvent();
|
||||||
|
$event->trackingId = $row['trackid'];
|
||||||
|
$event->subject = $row['subject'];
|
||||||
|
$event->title = $row['subject'];
|
||||||
|
$event->startTime = $row['due_date'];
|
||||||
|
$event->url = $heskSettings['hesk_url'] . '/' . $heskSettings['admin_dir'] . '/admin_ticket.php?track=' . $event['trackingId'];
|
||||||
|
$event->categoryId = $row['category'];
|
||||||
|
$event->categoryName = $row['category_name'];
|
||||||
|
$event->backgroundColor = $row['background_color'];
|
||||||
|
$event->foregroundColor = $row['foreground_color'];
|
||||||
|
$event->displayBorder = $row['display_border'];
|
||||||
|
$event->owner = $row['owner_name'];
|
||||||
|
$event->priority = $row['priority'];
|
||||||
|
|
||||||
|
$events[] = $event;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->close();
|
$this->close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user