$_REQUEST['params']['user'], "password" => $_REQUEST['params']['password'], "auth" => $auth ); break; case 'Logout': $requestID = 4; $params = array ("auth" => $auth); break; case 'Mail/Folders': $requestID = 5; $params = array ( "auth" => $auth, "search" => $search ); break; case 'Mail/RenameFolder': $requestID = 5; $params = array ( "auth" => $auth, "folderID" => $_REQUEST['params']['folderID'], "folderName" => $_REQUEST['params']['newFolderName'] ); break; case 'Mail/AddFolder': $requestID = 5; $params = array ( "auth" => $auth, "parentFolderID" => $_REQUEST['params']['folderID'], "folderName" => $_REQUEST['params']['newFolderName'] ); break; case 'Mail/DelFolder': $requestID = 5; $params = array ( "auth" => $auth, "folderID" => $_REQUEST['params']['folderID'] ); break; case 'Mail/Send': $requestID = 6; $params = array ( "auth" => $auth, "msgFrom" => $_REQUEST['params']['msgFrom'], "msgTo" => $_REQUEST['params']['msgTo'], "msgCcTo" => $_REQUEST['params']['msgCcTo'], "msgBccTo" => $_REQUEST['params']['msgBccTo'], "msgReplyTo" => $_REQUEST['params']['msgReplyTo'], "msgSubject" => $_REQUEST['params']['msgSubject'], "msgBody" => $_REQUEST['params']['msgBody'] ); break; case 'Mail/Messages': $requestID = 6; $params = array ( "auth" => $auth, "search" => $search, "folderID" => $_REQUEST['params']['folderID'], "msgID" => $_REQUEST['params']['msgID'] ); break; case 'Mail/CleanTrash': $requestID = 7; $params = array ( "auth" => $auth ); break; case 'Mail/SendSupportFeedback': $requestID = 8; $params = array ( "auth" => $auth, "message" => $_REQUEST['params']['message'] ); break; case 'Catalog/Contacts': $requestID = 9; $params = array ( "auth" => $auth, "search" => $search, "contactID" => $_REQUEST['params']['contactID'], "contactType" => $_REQUEST['params']['contactType'] ); break; case 'Catalog/ContactPicture': $requestID = 10; $params = array ( "auth" => $auth, "contactID" => $_REQUEST['params']['contactID'], "contactType" => $_REQUEST['params']['contactType'] ); break; case 'Calendar/Events': $requestID = 15; $params = array ( "auth" => $auth, "dateStart" => $_REQUEST['params']['dateStart'], "dateEnd" => $_REQUEST['params']['dateEnd'], "splitEvent" => $_REQUEST['params']['splitEvent'] ); break; default: echo "NO REQUESTID FOR ".$resource. " RESOURCE."; break; } if($requestID) { $data = "id=$requestID"; } if($params) { $data.="¶ms=".json_encode($params); } $result = callJSONRPC($url, $resource, $data, $method); echo $result; function callJSONRPC($url, $resource, $data, $method) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if($method == "POST"){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_URL, $url.$resource); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")); $result = curl_exec($ch); $errorCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); $lastURL = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL); curl_close($ch); switch($errorCode){ case 200: break; case 404: $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL"))); break; case 500: $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR"))); break; default: $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR"))); break; } return $result; }