source: sandbox/2.4.1-3/prototype/rest/catalog/ContactResource.php @ 6526

Revision 6526, 3.9 KB checked in by gustavo, 12 years ago (diff)

Ticket #2766 - Preparativos para fazer o merge com o trunk da comunidade

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