source: sandbox/2.4.1-3/prototype/rest/catalog/ContactsResource.php @ 6512

Revision 6512, 5.2 KB checked in by gustavo, 12 years ago (diff)

Ticket #2766 - implementacao da dfd0065 e correcao de bugs da dfd0099

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