This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Incam_SGD/webservice/clienttools/comms.php

79 lines
1.9 KiB
PHP
Raw Normal View History

<?php
include_once('../../ktapi/ktapi.inc.php');
error_reporting(E_ERROR);
define('COMMS_DEBUG',true);
/**
* Intercept Errors and Exceptions and provide a json response in return.
* TODO: Make the json response 1. an object of its own and 2. versionable.
*
* @param unknown_type $e
* @param unknown_type $errstr
* @param unknown_type $errfile
* @param unknown_type $errline
*
* return json Error Response
*/
function error_handler($e,$errstr=null,$errfile=null,$errline=null){
if($GLOBALS['RET']){
$GLOBALS['RET']->addError($errfile?$errstr:$e->getmessage());
$GLOBALS['RET']->setDebug($errfile?'ERR':'EXC',$errfile?(array('error_number'=>$e,'error_string'=>$errstr,'error_file'=>$errfile,'error_line'=>$errline)):$e);
echo $GLOBALS['RET']->getJson();
exit;
};
}
/**
* Set the error & exception handlers
*/
$old_exception_handler=set_exception_handler('error_handler');
$old_error_handler=set_error_handler('error_handler',E_ERROR);
/**
* Load additional generic libaries
*/
//Interpret the Json Object that was passed
include_once('jsonWrapper.php');
include_once('ajaxhandler.php');
include_once('serviceHelper.php');
include_once('client_service.php');
//Instantiate base classes
$KT = new KTAPI();
$RET=new jsonResponseObject();
if($_GET['datasource'])$RET->isDataSource=true;
$noAuthRequests=array(
'auth.ping',
//'auth.japiLogin',
'kt.get_all_client_policies',
'kt.get_languages',
'kt.switchlang'
);
if (KTPluginUtil::pluginIsActive('ktdms.wintools')) {
$path = KTPluginUtil::getPluginPath('ktdms.wintools');
require_once($path . 'baobabkeyutil.inc.php');
}
$handler=new ajaxHandler($RET,$KT,$noAuthRequests);
//Determine the requested comms version & Load related libraries
/**
* Reset the error & exception handlers
*/
set_exception_handler($old_exception_handler);
set_error_handler($old_error_handler,E_ALL);
?>