source: sandbox/2.4.3-expresso-rest/prototype/rest/availableServers/AvailableServersResource.php @ 7306

Revision 7306, 1.5 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #3093 - Integração da API REST.

  • Property svn:executable set to *
Line 
1<?php
2/**
3 * @uri /AvailableServers
4 */
5class AvailableServersResource extends Resource {
6
7        function post($request){
8                return $this->get($request);
9        }
10       
11        function get($request){
12                $error = null;         
13                parse_str($request->data, &$data);             
14                $handle = fopen('../config/rest_servers.conf', "r");
15                $servers= array();     
16                if($handle) {
17                        while (!feof ($handle)) {
18                                $line = fgets($handle,1024);
19                                if($line == null)
20                                        continue;
21                                list($id, $name, $description, $url, $context, $status) = explode(";",$line);
22                                $servers[] = array(
23                                                'serverID' => $id,
24                                                'serverName' => $name,
25                                                'serverDescription' => utf8_encode($description),
26                                                'serverUrl' => $url,
27                                                'serverContext' => $context,
28                                                'serverStatus' => ($status ? "1" : "0")
29                                );
30                        }
31                        fclose($handle);
32                }
33                else{
34                        $error = array("code" => "001", "message" => "The servers list was not found.");
35                }
36
37                function cmp($a, $b)
38                {
39                        return strcmp(strtolower($a["serverName"]), strtolower($b["serverName"]));
40                }
41       
42                if(count($servers) > 0){
43                        usort($servers, "cmp");
44                }
45
46                $response = new Response($request);
47                $response->code = Response::OK;
48                $response->addHeader('content-type', 'application/json');
49                               
50                $body = array();
51               
52                if($data['id']){
53                        $body['id'] = $data['id'];
54                }
55                if($servers){
56                        $body['result'] = array( "servers" => $servers);
57                }
58                elseif($error){
59                        $body['error'] = $error;
60                }
61                else{
62                        $body['error'] = "OBJETO SEM RESULT E SEM ERRO REPORTADO.";
63                }
64                                               
65                $response->body = json_encode($body);
66                       
67                return $response;
68        }               
69
70}
Note: See TracBrowser for help on using the repository browser.