| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- use \MGModule\DNSManager2\loader;
- //use \MGModule\DNSManager2\mgLibs\custom\reverse\ReverseDNS;
- //use \MGModule\DNSManager2\models\custom\reverse\Repository;
- //use \MGModule\DNSManager2\models\custom\server\Repository as Repository2;
- if (!defined("WHMCS")) {
- exit("This file cannot be accessed directly");
- }
- $addon_path = dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . 'modules'
- . DIRECTORY_SEPARATOR . 'addons' . DIRECTORY_SEPARATOR . 'DNSManager2';
- if(!class_exists('\MGModule\DNSManager2\loader')) {
- include_once $addon_path . DIRECTORY_SEPARATOR . 'loader.php';
- }
- $loader = new loader();
- MGModule\DNSManager2\addon::I(true,array());
- try {
- #MGLICENSE_CHECK_THROW_EXCEPTION#
- } catch (Exception $e) {
- $apiresults = array('result' => 'error', 'message' => 'Check your DNS Manager license');
- return ;
- }
- //error_reporting( E_ALL );
- //ini_set( 'display_errors', 1 );
- $data = $_REQUEST;
- if(empty($data['dnsaction'])) {
- $apiresults = array('result' => 'error', 'message' => 'DNS Action is required');
- return ;
- }
- try {
-
- $found = false;
- $method = $data['dnsaction'];
- $apiNamespace = '\MGModule\DNSManager2\mgLibs\ModuleAPI\\';
- $apiReflection = new ReflectionClass($apiNamespace . 'Api');
-
- foreach ($apiReflection->getMethods() as $methodObj) {
-
- $apiMethod = $methodObj->getName();
-
- if( strpos( $method, $apiMethod ) !== false )
- {
- try {
- # "try" construction is inside of "foreach", to prevent error and continue search
- $objName = preg_replace('/'.$apiMethod.'/', '', $method);
- $fullClassName = $apiNamespace . $objName;
-
- $apiObject = new $fullClassName($data);
- $apiResult = $apiObject->$apiMethod();
-
- $errors = $apiObject->getErrors();
-
- if(!empty($errors))
- {
- $apiresults = array('result' => 'error', 'message' => $errors[0]);
- return;
- }
- $found = true;
- } catch (\Exception $ex) {
-
- $trace = $ex->getTrace();
- if(!strpos($trace[0]['class'], '\loader'))
- {
- if( function_exists( 'logModuleCall' ))
- {
- \logModuleCall('DNS Manager', 'API('.$method.')', $data, $ex->getTrace());
- }
- $apiresults = array('result' => 'error', 'message' => $ex->getMessage());
- return ;
- }
- }
- }
- }
-
- if($found)
- {
- $apiresults = array('result' => 'success', 'data' => $apiResult);
- }else
- {
- $apiresults = array('result' => 'error', 'message' => 'DNS API Method is not found');
- }
-
- return;
-
- /*
- * UNUSED (not removed now, in case of neccesity)
- */
- switch ($action) {
- case 'getServerList':
- $out = array();
- $servers = Repository2::factory()->get();
- foreach($servers as $server) {
- $out[] = array(
- 'id' => $server->id,
- 'name' => $server->name,
- 'module' => $server->module,
- 'status' => $server->status,
- );
- }
- $apiresults = array('result' => 'success', 'servers' => json_encode($out));
- break;
- case 'saveRDNS':
- $reverse = Repository::factory()
- ->byServerID($data['params']['serverid'])
- ->byIP($data['params']['ip'])
- ->one();
- if($reverse == false) {
- $helper = new ReverseDNS();
- $helper->setClientID($data['params']['clientid']?:'0');
- $helper->setIP($data['params']['ip']);
- $helper->setServer($data['params']['serverid']);
- $helper->setTTL($data['params']['ttl']);
- $helper->setDomain($data['params']['rdata']);
- $helper->create();
- } else {
- $helper = new ReverseDNS($reverse);
- $helper->update();
- }
- $apiresults = array('result' => 'success');
- break;
- case 'removeRDNS':
- $reverse = Repository::factory()
- ->byServerID($data['params']['serverid'])
- ->byIP($data['params']['ip'])
- ->one();
- if($reverse != false) {
- $helper = new ReverseDNS($reverse);
- $helper->remove();
- $apiresults = array('result' => 'success');
- } else {
- $apiresults = array('result' => 'error', 'message' => 'Reverse not found in database');
- }
- break;
- default :
- $apiresults = array('result' => 'error', 'message' => 'Unknown action');
- break;
- }
- } catch(Whoops\Exception\ErrorException $e) {
- $apiresults = array('result' => 'error', 'message' => $e->getMessage());
- } catch(Exception $e) {
- $apiresults = array('result' => 'error', 'message' => $e->getMessage());
- }
|