You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mods-for-HESK-Netsyms/internal-api/admin/calendar/index.php

84 lines
3.1 KiB
PHP

<?php
define('IN_SCRIPT', 1);
define('HESK_PATH', '../../../');
define('INTERNAL_API_PATH', '../../');
require_once(HESK_PATH . 'hesk_settings.inc.php');
require_once(HESK_PATH . 'inc/common.inc.php');
require_once(HESK_PATH . 'inc/attachments.inc.php');
require_once(HESK_PATH . 'inc/posting_functions.inc.php');
require_once(INTERNAL_API_PATH . 'core/output.php');
require_once(INTERNAL_API_PATH . 'dao/calendar_dao.php');
hesk_session_start();
hesk_load_internal_api_database_functions();
hesk_dbConnect();
$modsForHesk_settings = mfh_getSettings();
// Routing
$request_method = $_SERVER['REQUEST_METHOD'];
if ($request_method === 'GET') {
$start = hesk_GET('start');
$end = hesk_GET('end');
$events = get_events($start, $end, $hesk_settings);
return output($events);
} elseif ($request_method === 'POST') {
$action = hesk_POST('action');
if ($action === 'create') {
$event['title'] = hesk_POST('title');
$event['location'] = hesk_POST('location');
$event['start'] = hesk_POST('startTime');
$event['end'] = hesk_POST('endTime');
$event['all_day'] = hesk_POST('allDay') === 'true';
$event['comments'] = hesk_POST('comments');
$event['category'] = hesk_POST('categoryId');
$event['reminder_amount'] = hesk_POST('reminderValue');
$event['reminder_amount'] = $event['reminder_amount'] == '' ? null : $event['reminder_amount'];
$event['reminder_units'] = hesk_POST('reminderUnits');
$event['reminder_user'] = $_SESSION['id'];
$id = create_event($event, $hesk_settings);
return output($id);
} elseif ($action === 'update') {
if (!isset($_POST['id'])) {
mfh_log_error('internal-api/admin/calendar', 'Unable to update an event as it has no ID.', $_SESSION['id']);
return http_response_code(400);
}
$event['id'] = hesk_POST('id');
$event['title'] = hesk_POST('title');
$event['location'] = hesk_POST('location');
$event['start'] = hesk_POST('startTime');
$event['end'] = hesk_POST('endTime');
$event['all_day'] = hesk_POST('allDay') === 'true';
$event['comments'] = hesk_POST('comments');
$event['category'] = hesk_POST('categoryId');
$event['reminder_amount'] = hesk_POST('reminderValue');
$event['reminder_amount'] = $event['reminder_amount'] == '' ? null : $event['reminder_amount'];
$event['reminder_units'] = hesk_POST('reminderUnits');
$event['reminder_user'] = $_SESSION['id'];
update_event($event, $hesk_settings);
return http_response_code(200);
} elseif ($action === 'delete') {
$id = hesk_POST('id');
delete_event($id, $hesk_settings);
return http_response_code(200);
} elseif ($action === 'update-ticket') {
$ticket['due_date'] = hesk_POST('dueDate');
if ($ticket['due_date'] == '') {
$ticket['due_date'] = NULL;
}
$ticket['trackid'] = hesk_POST('trackingId');
update_ticket_due_date($ticket, $hesk_settings);
return http_response_code(200);
}
}
return http_response_code(400);