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

Revision 6424, 4.6 KB checked in by asaikawa, 12 years ago (diff)

Ticket #2507 - Inclusao do formulario de teste do Recurso que recupera os eventos no Restclient

  • 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/Send':
80                        $requestID = 6;
81                        $params = array (
82                                        "auth"                  => $auth,
83                                        "msgFrom"               => $_REQUEST['params']['msgFrom'],
84                                        "msgTo"                 => $_REQUEST['params']['msgTo'],
85                                        "msgCcTo"               => $_REQUEST['params']['msgCcTo'],
86                                        "msgBccTo"              => $_REQUEST['params']['msgBccTo'],
87                                        "msgReplyTo"    => $_REQUEST['params']['msgReplyTo'],
88                                        "msgSubject"    => $_REQUEST['params']['msgSubject'],
89                                        "msgBody"               => $_REQUEST['params']['msgBody']
90                                );
91                        break;
92
93                case 'Mail/Messages':
94                        $requestID = 6;
95                        $params = array (
96                                        "auth"          => $auth,
97                                        "search"        => $search,
98                                        "folderID"      => $_REQUEST['params']['folderID'],
99                                        "msgID"         => $_REQUEST['params']['msgID']
100                                );
101                        break;
102
103                case 'Mail/CleanTrash':
104                        $requestID = 7;
105                        $params = array (
106                                        "auth" => $auth
107                                );
108                        break;
109
110                case 'Mail/SendSupportFeedback':
111                        $requestID = 8;
112                        $params = array (
113                                        "auth"          => $auth,
114                                        "message"       => $_REQUEST['params']['message']
115                                );
116                        break;
117
118                case 'Catalog/Contacts':
119                        $requestID = 9;
120                        $params = array (
121                                        "auth"                  => $auth,
122                                        "search"                => $search,
123                                        "contactID"             => $_REQUEST['params']['contactID'],
124                                        "contactType"   => $_REQUEST['params']['contactType']
125                                );
126
127                        break;
128                case 'Catalog/ContactPicture':
129                        $requestID = 10;
130                        $params = array (
131                                "auth"                  => $auth,
132                                "contactID"             => $_REQUEST['params']['contactID'],
133                                "contactType"   => $_REQUEST['params']['contactType']
134                        );
135
136                        break;
137                case 'Calendar/Events':
138                        $requestID = 15;
139                        $params = array (
140                                "auth"                  => $auth,
141                                "dateStart"             => $_REQUEST['params']['dateStart'],
142                                "dateEnd"               => $_REQUEST['params']['dateEnd'],
143                                "splitEvent"    => $_REQUEST['params']['splitEvent']
144                        );
145
146                        break;
147                default:
148                        echo "NO REQUESTID FOR ".$resource. " RESOURCE.";
149                        break;
150
151        }
152
153        if($requestID) {
154                $data = "id=$requestID";
155        }
156
157        if($params) {
158                $data.="&params=".json_encode($params);
159        }
160
161        $result = callJSONRPC($url, $resource, $data, $method);
162        echo $result;
163
164
165        function callJSONRPC($url, $resource, $data, $method) {
166                $ch = curl_init();
167                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
168                if($method == "POST"){
169                        curl_setopt($ch, CURLOPT_POST, 1);
170                        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
171                }
172
173                curl_setopt($ch, CURLOPT_URL, $url.$resource);
174                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded"));
175
176
177                $result         = curl_exec($ch);
178                $errorCode      = curl_getinfo($ch,CURLINFO_HTTP_CODE);
179                $lastURL        = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
180                curl_close($ch);
181
182                switch($errorCode){
183                        case 200:
184                                break;
185                        case 404:
186                                $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL")));
187                                break;
188                        case 500:
189                                $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR")));
190                                break;
191                        default:
192                                $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR")));
193                                break;
194                }
195                return $result;
196        }
Note: See TracBrowser for help on using the repository browser.