source: trunk/prototype/rest/catalog/PersonalContactResource.php @ 7221

Revision 7221, 5.5 KB checked in by acoutinho, 12 years ago (diff)

Ticket #3104 - Unificar recursos de listagem dos contatos pessoais

  • 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 PersonalContactResource 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, 'PersonalContactResource');
30
31        try {
32            $this->secured();
33
34            $contacts = !!$id ? Controller::find( array( 'concept' => 'contact' ), false, array( 'filter' => array( 'AND', array('=', 'user',  Config::me("uidNumber") ), array('=', 'id', $id) )  ) ) :
35                Controller::find( array( 'concept' => 'contact' ), false, array( 'filter' => array('=', 'user',  Config::me("uidNumber"))));
36
37            //Se nao foi encontrado contatos na consulta
38            if($contacts===false){
39                $error = new Error();
40                $error->setCode(Response::NOTFOUND);
41                $error->setTitle('Contacts not found');
42                $error->setDescription('Contacts not found.');
43
44                $c->setError($error);
45                $h->setCollection($c);
46
47                $response->code = Response::NOTFOUND;
48                $response->body = $h->getHypermedia($request->accept[10][0]);
49                return $response;
50            }
51
52            foreach($contacts as $value){
53
54                $i = new Item($request->resources, 'PersonalContactResource', $value['id']);
55
56                $d = new Data();
57                $d->setName('name');
58                $d->setValue($value['name']);
59                $d->setPrompt('Nome do Contato');
60                $d->setDataType('string');
61                $d->setMaxLength('100');
62                $d->setMinLength(null);
63                $d->setRequired(true);
64
65                $i->addData($d);
66
67                $d = new Data();
68                $d->setName('id');
69                $d->setValue($value['id']);
70                $d->setPrompt('Id do Contato');
71                $d->setDataType('string');
72                $d->setMaxLength('100');
73                $d->setMinLength(null);
74                $d->setRequired(true);
75
76                $i->addData($d);
77
78                $d = new Data();
79                $d->setName('email');
80                $d->setValue($value['email']);
81                $d->setPrompt('Email do Contato');
82                $d->setDataType('string');
83                $d->setMaxLength('100');
84                $d->setMinLength(null);
85                $d->setRequired(true);
86
87                $i->addData($d);
88
89                $l = new Link();
90
91                $l->setHref('');
92                $l->setRel('delete');
93                $l->setAlt('Remover');
94                $l->setPrompt('Remover');
95                $l->setRender('link');
96
97                $i->addLink($l);
98
99                $l = new Link();
100                $l->setHref('');
101                $l->setRel('put');
102                $l->setAlt('Atualizar');
103                $l->setPrompt('Atualizar');
104                $l->setRender('link');
105
106                $i->addLink($l);
107
108                $l = new Link();
109                $l->setHref('/contact/'.$value['id']);
110                $l->setRel('get');
111                $l->setAlt('Buscar');
112                $l->setPrompt('Buscar');
113                $l->setRender('link');
114
115                $i->addLink($l);
116                $c->addItem($i);
117            }
118
119            $t = new Template();
120            $d = new Data();
121
122            $d->setName('name');
123            $d->setValue(null);
124            $d->setPrompt('Nome do Contato');
125            $d->setDataType('string');
126            $d->setMaxLength(100);
127            $d->setMinLength(null);
128            $d->setRequired(true);
129
130            $t->addData($d);
131
132            $d = new Data();
133            $d->setName('email');
134            $d->setValue(null);
135            $d->setPrompt('Email do Contato');
136            $d->setDataType('string');
137            $d->setMaxLength(100);
138            $d->setMinLength(null);
139            $d->setRequired(true);
140
141            $t->addData($d);
142
143            $d = new Data();
144            $d->setName('telefone');
145            $d->setValue(null);
146            $d->setPrompt('Telefone do Contato');
147            $d->setDataType('string');
148            $d->setMaxLength(100);
149            $d->setMinLength(null);
150            $d->setRequired(true);
151
152            $t->addData($d);
153
154            $c->setTemplate($t);
155
156            $h->setCollection($c);
157
158        }catch (Exception $ex){
159            $error = new Error();
160            $error->setCode(Response::INTERNALSERVERERROR);
161            $error->setTitle('Internal Server Error');
162            $error->setDescription($ex);
163
164            $c->setError($error);
165            $h->setCollection($c);
166
167            $response->code = Response::INTERNALSERVERERROR;
168            $response->body = $h->getHypermedia($request->accept[10][0]);
169            return $response;
170        }
171
172        $response->body = $h->getHypermedia($request->accept[10][0]);
173        return $response;
174    }
175}
176?>
Note: See TracBrowser for help on using the repository browser.