source: sandbox/2.4.1-3/prototype/rest/catalog/GroupsResource.php @ 6439

Revision 6439, 4.1 KB checked in by douglasz, 12 years ago (diff)

Ticket #2766 - Possibilitar remoção de contatos dinâmicos.

  • 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');
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                                $l = new Link();
86
87                                $l->setHref('');
88                                $l->setRel('delete');
89                                $l->setAlt('Remover');
90                                $l->setPrompt('Remover');
91                                $l->setRender('link');
92
93                                $i->addLink($l);
94
95                                $l = new Link();
96                                $l->setHref('');
97                                $l->setRel('put');
98                                $l->setAlt('Atualizar');
99                                $l->setPrompt('Atualizar');
100                                $l->setRender('link');
101
102                                $i->addLink($l);
103
104                                $l = new Link();
105                                $l->setHref('/group/'.$value['id']);
106                                $l->setRel('get');
107                                $l->setAlt('Buscar');
108                                $l->setPrompt('Buscar');
109                                $l->setRender('link');
110
111                                $i->addLink($l);
112                                $c->addItem($i);
113            }
114
115            $t = new Template();
116
117            $d = new Data();
118                       
119                        $d->setName('id');
120                        $d->setValue(null);
121                        $d->setPrompt('Id do Grupo');
122                        $d->setDataType('string');
123                        $d->setMaxLength('100');
124                        $d->setMinLength(null);
125                        $d->setRequired(true);
126                       
127                        $t->addData($d);
128
129                        $d = new Data();
130                        $d->setName('user');
131                        $d->setValue(null);
132                        $d->setPrompt('Id Dono do Grupo');
133                        $d->setDataType('string');
134                        $d->setMaxLength('100');
135                        $d->setMinLength(null);
136                        $d->setRequired(true);
137                       
138                        $t->addData($d);
139
140                        $d = new Data();                               
141                        $d->setName('name');
142                        $d->setValue(null);
143                        $d->setPrompt('Nome do Grupo');
144                        $d->setDataType('string');
145                        $d->setMaxLength('100');
146                        $d->setMinLength(null);
147                        $d->setRequired(true);
148                       
149            $t->addData($d);
150
151            $c->setTemplate($t);
152                       
153            $h->setCollection($c);
154
155        }catch (Exception $ex){
156                $error = new Error();
157                $error->setCode(Response::INTERNALSERVERERROR);
158                $error->setTitle('Internal Server Error');
159                $error->setDescription($ex);
160
161                $c->setError($error);
162                $h->setCollection($c);
163
164                $response->code = Response::INTERNALSERVERERROR;
165                $response->body = $h->getHypermedia($request->accept[10][0]);
166                return $response;
167        }
168
169        $response->body = $h->getHypermedia($request->accept[10][0]);
170        return $response;
171  }
172}
173?>
Note: See TracBrowser for help on using the repository browser.