source: sandbox/webservice/restclient/restclient.php @ 6156

Revision 6156, 3.9 KB checked in by asaikawa, 12 years ago (diff)

Ticket #2507 - Atualizado o restclient com os testes das operacoes com pastas (Add, Del e Rename)

  • Property svn:executable set to *
Line 
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/RenameFolder':
54                        $requestID = 5;
55                        $params = array (
56                                        "auth"                  => $auth,
57                                        "folderID"              => $_REQUEST['params']['folderID'],
58                                        "folderName"    => $_REQUEST['params']['newFolderName']
59                                );
60                        break;
61
62                case 'Mail/AddFolder':
63                        $requestID = 5;
64                        $params = array (
65                                        "auth"                          => $auth,
66                                        "parentFolderID"        => $_REQUEST['params']['folderID'],
67                                        "folderName"            => $_REQUEST['params']['newFolderName']
68                                );
69                        break;
70
71                case 'Mail/DelFolder':
72                        $requestID = 5;
73                        $params = array (
74                                        "auth"          => $auth,
75                                        "folderID"      => $_REQUEST['params']['folderID']
76                                );
77                        break;
78
79                case 'Mail/Messages':
80                        $requestID = 6;
81                        $params = array (
82                                        "auth"          => $auth,
83                                        "search"        => $search,
84                                        "folderID"      => $_REQUEST['params']['folderID'],
85                                        "msgID"         => $_REQUEST['params']['msgID']
86                                );
87                        break;
88
89                case 'Mail/CleanTrash':
90                        $requestID = 7;
91                        $params = array (
92                                        "auth" => $auth
93                                );
94                        break;
95
96                case 'Mail/SendSupportFeedback':
97                        $requestID = 8;
98                        $params = array (
99                                        "auth"          => $auth,
100                                        "message"       => $_REQUEST['params']['message']
101                                );
102                        break;
103
104                case 'Catalog/Contacts':
105                        $requestID = 9;
106                        $params = array (
107                                        "auth"                  => $auth,
108                                        "search"                => $search,
109                                        "contactID"             => $_REQUEST['params']['contactID'],
110                                        "contactType"   => $_REQUEST['params']['contactType']
111                                );
112
113                        break;
114                case 'Catalog/ContactPicture':
115                        $requestID = 10;
116                        $params = array (
117                                "auth"                  => $auth,
118                                "contactID"             => $_REQUEST['params']['contactID'],
119                                "contactType"   => $_REQUEST['params']['contactType']
120                        );
121
122                        break;
123                default:
124                        echo "NO REQUESTID FOR ".$resource. " RESOURCE.";
125                        break;
126
127        }
128
129        if($requestID) {
130                $data = "id=$requestID";
131        }
132
133        if($params) {
134                $data.="&params=".json_encode($params);
135        }
136
137        $result = callJSONRPC($url, $resource, $data, $method);
138        echo $result;
139
140
141        function callJSONRPC($url, $resource, $data, $method) {
142                $ch = curl_init();
143                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
144                if($method == "POST"){
145                        curl_setopt($ch, CURLOPT_POST, 1);
146                        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
147                }
148
149                curl_setopt($ch, CURLOPT_URL, $url.$resource);
150                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded"));
151
152
153                $result         = curl_exec($ch);
154                $errorCode      = curl_getinfo($ch,CURLINFO_HTTP_CODE);
155                $lastURL        = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
156                curl_close($ch);
157
158                switch($errorCode){
159                        case 200:
160                                break;
161                        case 404:
162                                $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL")));
163                                break;
164                        case 500:
165                                $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR")));
166                                break;
167                        default:
168                                $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR")));
169                                break;
170                }
171                return $result;
172        }
Note: See TracBrowser for help on using the repository browser.