[6092] | 1 | <?php |
---|
| 2 | $ws_expressolivre = "http://www.expressolivre.org/api/rest/"; |
---|
| 3 | //$ws_expressolivre = "http://localhost/html/expressolivre/ws/rest"; |
---|
| 4 | //$ws_expressolivre = "http://localhost/html/expressolivre/a/rest"; |
---|
| 5 | $auth = $_REQUEST['params']['auth']; |
---|
| 6 | $url = $_REQUEST['params']['server']; |
---|
| 7 | $search = $_REQUEST['params']['search']; |
---|
| 8 | $method = $_REQUEST['params']['method'] ? $_REQUEST['params']['method'] : "GET"; |
---|
| 9 | $resource = $_REQUEST['action']; |
---|
| 10 | |
---|
| 11 | |
---|
| 12 | // Outros |
---|
| 13 | $params = ""; |
---|
| 14 | $result = ""; |
---|
| 15 | $requestID = ""; |
---|
| 16 | |
---|
| 17 | switch($resource){ |
---|
| 18 | |
---|
| 19 | case 'AvailableServers': |
---|
| 20 | $requestID = 1; |
---|
| 21 | $url = $ws_expressolivre; |
---|
| 22 | break; |
---|
| 23 | |
---|
| 24 | case 'Teste': |
---|
| 25 | break; |
---|
| 26 | |
---|
| 27 | case 'ExpressoVersion': |
---|
| 28 | $requestID = 2; |
---|
| 29 | break; |
---|
| 30 | |
---|
| 31 | case 'Login': |
---|
| 32 | $requestID = 3; |
---|
| 33 | $params = array ( |
---|
| 34 | "user" => $_REQUEST['params']['user'], |
---|
| 35 | "password" => $_REQUEST['params']['password'], |
---|
| 36 | "auth" => $auth |
---|
| 37 | ); |
---|
| 38 | break; |
---|
| 39 | |
---|
| 40 | case 'Logout': |
---|
| 41 | $requestID = 4; |
---|
| 42 | $params = array ("auth" => $auth); |
---|
| 43 | break; |
---|
| 44 | |
---|
| 45 | case 'Mail/Folders': |
---|
| 46 | $requestID = 5; |
---|
| 47 | $params = array ( |
---|
| 48 | "auth" => $auth, |
---|
| 49 | "search" => $search |
---|
| 50 | ); |
---|
| 51 | break; |
---|
| 52 | |
---|
| 53 | case 'Mail/Messages': |
---|
| 54 | $requestID = 6; |
---|
| 55 | $params = array ( |
---|
| 56 | "auth" => $auth, |
---|
| 57 | "search" => $search, |
---|
| 58 | "folderID" => $_REQUEST['params']['folderID'], |
---|
| 59 | "msgID" => $_REQUEST['params']['msgID'] |
---|
| 60 | ); |
---|
| 61 | break; |
---|
| 62 | |
---|
| 63 | case 'Mail/CleanTrash': |
---|
| 64 | $requestID = 7; |
---|
| 65 | $params = array ( |
---|
| 66 | "auth" => $auth |
---|
| 67 | ); |
---|
| 68 | break; |
---|
| 69 | |
---|
| 70 | case 'Mail/SendSupportFeedback': |
---|
| 71 | $requestID = 8; |
---|
| 72 | $params = array ( |
---|
| 73 | "auth" => $auth, |
---|
| 74 | "message" => $_REQUEST['params']['message'] |
---|
| 75 | ); |
---|
| 76 | break; |
---|
| 77 | |
---|
| 78 | case 'Catalog/Contacts': |
---|
| 79 | $requestID = 9; |
---|
| 80 | $params = array ( |
---|
| 81 | "auth" => $auth, |
---|
| 82 | "search" => $search, |
---|
| 83 | "contactID" => $_REQUEST['params']['contactID'], |
---|
| 84 | "contactType" => $_REQUEST['params']['contactType'] |
---|
| 85 | ); |
---|
| 86 | |
---|
| 87 | break; |
---|
| 88 | case 'Catalog/ContactPicture': |
---|
| 89 | $requestID = 10; |
---|
| 90 | $params = array ( |
---|
| 91 | "auth" => $auth, |
---|
| 92 | "contactID" => $_REQUEST['params']['contactID'], |
---|
| 93 | "contactType" => $_REQUEST['params']['contactType'] |
---|
| 94 | ); |
---|
| 95 | |
---|
| 96 | break; |
---|
| 97 | default: |
---|
| 98 | echo "NO REQUESTID FOR ".$resource. " RESOURCE."; |
---|
| 99 | break; |
---|
| 100 | |
---|
| 101 | } |
---|
| 102 | |
---|
| 103 | if($requestID) { |
---|
| 104 | $data = "id=$requestID"; |
---|
| 105 | } |
---|
| 106 | |
---|
| 107 | if($params) { |
---|
| 108 | $data.="¶ms=".json_encode($params); |
---|
| 109 | } |
---|
| 110 | |
---|
| 111 | $result = callJSONRPC($url, $resource, $data, $method); |
---|
| 112 | echo $result; |
---|
| 113 | |
---|
| 114 | |
---|
| 115 | function callJSONRPC($url, $resource, $data, $method) { |
---|
| 116 | $ch = curl_init(); |
---|
| 117 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
---|
| 118 | if($method == "POST"){ |
---|
| 119 | curl_setopt($ch, CURLOPT_POST, 1); |
---|
| 120 | curl_setopt($ch, CURLOPT_POSTFIELDS, $data); |
---|
| 121 | } |
---|
| 122 | |
---|
| 123 | curl_setopt($ch, CURLOPT_URL, $url.$resource); |
---|
| 124 | curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")); |
---|
| 125 | |
---|
| 126 | |
---|
| 127 | $result = curl_exec($ch); |
---|
| 128 | $errorCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); |
---|
| 129 | $lastURL = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL); |
---|
| 130 | curl_close($ch); |
---|
| 131 | |
---|
| 132 | switch($errorCode){ |
---|
| 133 | case 200: |
---|
| 134 | break; |
---|
| 135 | case 404: |
---|
| 136 | $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL"))); |
---|
| 137 | break; |
---|
| 138 | case 500: |
---|
| 139 | $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR"))); |
---|
| 140 | break; |
---|
| 141 | default: |
---|
| 142 | $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR"))); |
---|
| 143 | break; |
---|
| 144 | } |
---|
| 145 | return $result; |
---|
| 146 | } |
---|