source: branches/2.4/prototype/rest/catalog/GroupsResource.php @ 6754

Revision 6754, 4.4 KB checked in by niltonneto, 12 years ago (diff)

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.1.

  • Property svn:executable set to *
Line 
1<?php
2
3if( !defined( 'ROOTPATH' ) )
4    define( 'ROOTPATH', dirname(__FILE__).'/..' );
5
6require_once(ROOTPATH.'/rest/hypermedia/hypermedia.php');
7
8use prototype\api\Config as Config;
9
10class GroupsResource extends Resource {
11
12    /**
13     * Retorna uma lista de grupos
14     *
15     * @license    http://www.gnu.org/copyleft/gpl.html GPL
16     * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br)
17     * @sponsor    Caixa Econômica Federal
18     * @author     Douglas Zilli.
19     * @return     Retorna uma lista de Grupos
20     * @access     public
21     * */
22    function get($request) {
23
24        $response = new Response($request);
25        $response->addHeader('Content-type', 'aplication/json');
26        $response->code = Response::OK;
27
28        $h = new Hypermedia();
29        $c = new Collection($request->resources, 'GroupsResource');
30       
31        try {
32            $this->secured();
33
34        $groups = Controller::find( array( 'concept' => 'contactGroup' ), false, array( 'filter' => array('=', 'user',  Config::me("uidNumber") ), 'order' => array('name') ) );                       
35                       
36            //Se nao foi encontrado contatos na consulta
37            if($groups===false){
38                        $error = new Error();
39                        $error->setCode(Response::NOTFOUND);
40                        $error->setTitle('Group not found');
41                        $error->setDescription('Group not found.');
42                       
43                        $c->setError($error);
44                        $h->setCollection($c);
45
46                        $response->code = Response::NOTFOUND;
47                        $response->body = $h->getHypermedia($request->accept[10][0]);
48                        return $response;
49            }
50
51                foreach($groups as $value){
52       
53                                $i = new Item($request->resources, 'GroupsResource', $value['id']);
54                               
55                                $d = new Data();
56                                $d->setName('id');
57                                $d->setValue($value['id']);
58                                $d->setPrompt('Id do Grupo');
59                                $d->setDataType('string');
60                                $d->setMaxLength('100');
61                                $d->setMinLength(null);
62                                $d->setRequired(true);
63                                $i->addData($d);
64
65                                $d = new Data();
66                                $d->setName('user');
67                                $d->setValue($value['user']);
68                                $d->setPrompt('Id Dono do Grupo');
69                                $d->setDataType('string');
70                                $d->setMaxLength('100');
71                                $d->setMinLength(null);
72                                $d->setRequired(true);
73                                $i->addData($d);
74
75                                $d = new Data();                               
76                                $d->setName('name');
77                                $d->setValue($value['name']);
78                                $d->setPrompt('Nome do Grupo');
79                                $d->setDataType('string');
80                                $d->setMaxLength('100');
81                                $d->setMinLength(null);
82                                $d->setRequired(true);
83                                $i->addData($d);
84
85                                $d = new Data();                               
86                                $d->setName('email');
87                                $d->setValue($value['email']);
88                                $d->setPrompt('Email do Grupo');
89                                $d->setDataType('string');
90                                $d->setMaxLength('100');
91                                $d->setMinLength(null);
92                                $d->setRequired(true);
93                                $i->addData($d);
94                               
95                                $l = new Link();
96
97                                $l->setHref('');
98                                $l->setRel('delete');
99                                $l->setAlt('Remover');
100                                $l->setPrompt('Remover');
101                                $l->setRender('link');
102
103                                $i->addLink($l);
104
105                                $l = new Link();
106                                $l->setHref('');
107                                $l->setRel('put');
108                                $l->setAlt('Atualizar');
109                                $l->setPrompt('Atualizar');
110                                $l->setRender('link');
111
112                                $i->addLink($l);
113
114                                $l = new Link();
115                                $l->setHref('/group/'.$value['id']);
116                                $l->setRel('get');
117                                $l->setAlt('Buscar');
118                                $l->setPrompt('Buscar');
119                                $l->setRender('link');
120
121                                $i->addLink($l);
122                                $c->addItem($i);
123            }
124
125            $t = new Template();
126
127            $d = new Data();
128                       
129                        $d->setName('id');
130                        $d->setValue(null);
131                        $d->setPrompt('Id do Grupo');
132                        $d->setDataType('string');
133                        $d->setMaxLength('100');
134                        $d->setMinLength(null);
135                        $d->setRequired(true);
136                       
137                        $t->addData($d);
138
139                        $d = new Data();
140                        $d->setName('user');
141                        $d->setValue(null);
142                        $d->setPrompt('Id Dono do Grupo');
143                        $d->setDataType('string');
144                        $d->setMaxLength('100');
145                        $d->setMinLength(null);
146                        $d->setRequired(true);
147                       
148                        $t->addData($d);
149
150                        $d = new Data();                               
151                        $d->setName('name');
152                        $d->setValue(null);
153                        $d->setPrompt('Nome do Grupo');
154                        $d->setDataType('string');
155                        $d->setMaxLength('100');
156                        $d->setMinLength(null);
157                        $d->setRequired(true);
158                       
159            $t->addData($d);
160
161            $c->setTemplate($t);
162                       
163            $h->setCollection($c);
164
165        }catch (Exception $ex){
166                $error = new Error();
167                $error->setCode(Response::INTERNALSERVERERROR);
168                $error->setTitle('Internal Server Error');
169                $error->setDescription($ex);
170
171                $c->setError($error);
172                $h->setCollection($c);
173
174                $response->code = Response::INTERNALSERVERERROR;
175                $response->body = $h->getHypermedia($request->accept[10][0]);
176                return $response;
177        }
178
179        $response->body = $h->getHypermedia($request->accept[10][0]);
180        return $response;
181  }
182}
183?>
Note: See TracBrowser for help on using the repository browser.