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

Revision 6092, 3.3 KB checked in by asaikawa, 12 years ago (diff)

Ticket #2507 - Inserindo codigo de um cliente para a realizacao dos testes de consumo dos webservices

  • 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/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.="&params=".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        }
Note: See TracBrowser for help on using the repository browser.