source: sandbox/2.4.1-3/prototype/rest/catalog/GroupResource.php @ 6437

Revision 6437, 5.7 KB checked in by gustavo, 12 years ago (diff)

Ticket #2766 - Ajustado padrao das hipermedias e reajuste de recursos

  • 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 GroupResource extends Resource {
11
12    /**
13     * Retorna uma lista de usuários
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     José Vicente Tezza Jr.
19     * @return     Retorna uma lista de usuários do LDAP
20     * @access     public
21     * */
22    function get($request, $id) {
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, 'GroupResource');
30
31        try {
32            $this->secured();
33
34            $group = Controller::find( array( 'concept' => 'contactGroup' ), false, array( 'filter' => array( 'AND', array('=', 'user',  Config::me("uidNumber") ), array('=', 'id', $id) )  ) );
35
36            //Se nao foi encontrado contatos na consulta
37            if($group===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               
51ob_start();
52print_r( "=== LOG BEGIN group===" . "\n" );
53print_r(  $group);
54print_r( "=== LOG BEGIN group2===" . "\n" );
55print_r(  $group[0]['contacts']);
56print_r( "\n=== LOG END ===" . "\n" );
57$output = ob_get_clean();
58file_put_contents( '/tmp/log-gustavo2.txt', file_get_contents( '/tmp/log-gustavo2.txt' ) . $output );
59
60                foreach($group[0]['contacts'] as $value){
61                        $d = new Data();
62                        $i = new Item($request->resources, 'ContactResource', $value['id']);
63
64                        $d->setName('name');
65                        $d->setValue($value['name']);
66                        $d->setPrompt('Nome do Grupo');
67                        $d->setDataType('string');
68                        $d->setMaxLength('100');
69                        $d->setMinLength(null);
70                        $d->setRequired(true);
71
72                        $i->addData($d);
73
74                        $d = new Data();
75                        $d->setName('id');
76                        $d->setValue($value['id']);
77                        $d->setPrompt('Id do Contato');
78                        $d->setDataType('string');
79                        $d->setMaxLength('100');
80                        $d->setMinLength(null);
81                        $d->setRequired(true);
82
83                        $i->addData($d);
84
85                        $d = new Data();
86                        $d->setName('email');
87                        $d->setValue($value['email']);
88                        $d->setPrompt('Email do Contato');
89                        $d->setDataType('string');
90                        $d->setMaxLength('100');
91                        $d->setMinLength(null);
92                        $d->setRequired(true);
93
94                        $i->addData($d);
95
96                        $l = new Link();
97
98                        $l->setHref('');
99                        $l->setRel('delete');
100                        $l->setAlt('Remover');
101                        $l->setPrompt('Remover');
102                        $l->setRender('link');
103
104                        $i->addLink($l);
105
106                        $l = new Link();
107                        $l->setHref('');
108                        $l->setRel('put');
109                        $l->setAlt('Atualizar');
110                        $l->setPrompt('Atualizar');
111                        $l->setRender('link');
112
113                        $i->addLink($l);
114
115                        $l = new Link();
116                        $l->setHref('/contact/'.$value['id']);
117                        $l->setRel('get');
118                        $l->setAlt('Buscar');
119                        $l->setPrompt('Buscar');
120                        $l->setRender('link');
121
122                        $i->addLink($l);
123                        $c->addItem($i);
124            }
125
126                $t = new Template();
127                $d = new Data();
128
129                $d->setName('name');
130                $d->setValue(null);
131                $d->setPrompt('Nome do Contato');
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('email');
141                $d->setValue(null);
142                $d->setPrompt('Email do Contato');
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('telefone');
152                $d->setValue(null);
153                $d->setPrompt('Telefone do Contato');
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                $d = new Data();
164                $d->setName('id');
165                $d->setValue($group[0]['id']);
166                $d->setPrompt('Id do Grupo');
167                $d->setDataType('string');
168                $d->setMaxLength(100);
169                $d->setMinLength(null);
170                $d->setRequired(true);
171
172                $c->addData($d);
173
174                $d = new Data();
175                $d->setName('name');
176                $d->setValue($group[0]['name']);
177                $d->setPrompt('Nome do Grupo');
178                $d->setDataType('string');
179                $d->setMaxLength(100);
180                $d->setMinLength(null);
181                $d->setRequired(true);
182
183                $c->addData($d);
184               
185                $d = new Data();
186                $d->setName('email');
187                $d->setValue($group[0]['email']);
188                $d->setPrompt('Email do Grupo');
189                $d->setDataType('string');
190                $d->setMaxLength(100);
191                $d->setMinLength(null);
192                $d->setRequired(true);
193
194                $c->addData($d);       
195               
196                $l = new Link();
197                $l->setHref('/group/'.$group[0]['id']);
198                $l->setRel('get');
199                $l->setAlt('Buscar');
200                $l->setPrompt('Buscar');
201                $l->setRender('link');
202
203                $c->addLink($l);
204                       
205                $l = new Link();
206                $l->setHref(null);
207                $l->setRel('put');
208                $l->setAlt('Edit');
209                $l->setRender('link');
210                $l->setPrompt('Editar');
211
212                $c->addLink($l);
213               
214                $l = new Link();
215                $l->setHref(null);
216                $l->setRel('post');
217                $l->setAlt('Create');
218                $l->setRender('link');
219                $l->setPrompt('Criar');
220
221                $c->addLink($l);
222               
223                $l = new Link();
224                $l->setHref(null);
225                $l->setRel('delete');
226                $l->setAlt('Delete');
227                $l->setRender('link');
228                $l->setPrompt('Remover');
229
230                $c->addLink($l);
231               
232                $h->setCollection($c);
233
234        }catch (Exception $ex){
235                $error = new Error();
236                $error->setCode(Response::INTERNALSERVERERROR);
237                $error->setTitle('Internal Server Error');
238                $error->setDescription($ex);
239
240                $c->setError($error);
241                $h->setCollection($c);
242
243                $response->code = Response::INTERNALSERVERERROR;
244                $response->body = $h->getHypermedia($request->accept[10][0]);
245                return $response;
246        }
247
248        $response->body = $h->getHypermedia($request->accept[10][0]);
249        return $response;
250  }
251}
252?>
Note: See TracBrowser for help on using the repository browser.