source: sandbox/2.4.1-3/prototype/rest/user/UserResource.php @ 6526

Revision 6526, 3.7 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
8class UserResource extends Resource {
9
10    /**
11     * Retorna uma lista de usuários
12     *
13     * @license    http://www.gnu.org/copyleft/gpl.html GPL
14     * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br)
15     * @sponsor    Caixa Econômica Federal
16     * @author     José Vicente Tezza Jr.
17     * @return     Retorna um usuário do LDAP filtrado pelo atributo 'uid'
18     * @access     public
19     * */
20    function get($request, $id) {
21
22        $response = new Response($request);
23        $response->addHeader('Content-type', 'aplication/json');
24        $response->code = Response::OK;
25
26        $h = new Hypermedia();
27        $c = new Collection($request->resources, 'UserResource');
28
29        try {
30
31            $this->secured();
32
33            $user = Controller::find(array('concept' => 'user','service'=>'OpenLDAP'), false, array('filter' => array('=', 'uid', $id )));
34
35            //Se nao foi encontrado usuario na consulta
36            if($user===false){
37                        $error = new Error();
38                        $error->setCode(Response::NOTFOUND);
39                        $error->setTitle('UserLDAP not found');
40                        $error->setDescription('User not found.');
41
42                        $c->setError($error);
43                        $h->setCollection($c);
44
45                        $response->code = Response::NOTFOUND;
46                        $response->body = $h->getHypermedia($request->accept[10][0]);
47                        return $response;
48            }
49
50                $t = new Template();
51                $d = new Data();
52
53                $d->setName('name');
54                $d->setValue(null);
55                $d->setPrompt('Nome do Usuário');
56                $d->setDataType('string');
57                $d->setMaxLength(100);
58                $d->setMinLength(null);
59                $d->setRequired(true);
60
61                $t->addData($d);
62                $d = new Data();
63
64                $d->setName('email');
65                $d->setValue(null);
66                $d->setPrompt('Email do Usuário');
67                $d->setDataType('string');
68                $d->setMaxLength(100);
69                $d->setMinLength(null);
70                $d->setRequired(true);
71
72                $t->addData($d);
73
74                $d = new Data();
75                $d->setName('telefone');
76                $d->setValue(null);
77                $d->setPrompt('Telefone do Usuário');
78                $d->setDataType('string');
79                $d->setMaxLength(100);
80                $d->setMinLength(null);
81                $d->setRequired(true);
82
83                $t->addData($d);
84
85                $c->setTemplate($t);
86               
87                $d = new Data();
88                $d->setName('name');
89                $d->setValue($user[0]['name']);
90                $d->setPrompt('Nome do Usuário');
91                $d->setDataType('string');
92                $d->setMaxLength('100');
93                $d->setMinLength(null);
94                $d->setRequired(true);
95
96                $c->addData($d);
97               
98                $d = new Data();
99                $d->setName('email');
100                $d->setValue($user[0]['mail']);
101                $d->setPrompt('Email do Usuário');
102                $d->setDataType('string');
103                $d->setMaxLength('100');
104                $d->setMinLength(null);
105                $d->setRequired(true);
106               
107                $c->addData($d);
108               
109                $d = new Data();
110                $d->setName('telephoneNumber');
111                $d->setValue($user[0]['telephoneNumber']);
112                $d->setPrompt('Telefone do Usuário');
113                $d->setDataType('string');
114                $d->setMaxLength('100');
115                $d->setMinLength(null);
116                $d->setRequired(true);
117                       
118                $c->addData($d);
119               
120                $l = new Link();
121                $l->setHref('');
122                $l->setRel('delete');
123                $l->setAlt('Remover');
124                $l->setPrompt('Remover');
125                $l->setRender('link');
126
127                $c->addLink($l);
128
129                $l = new Link();
130                $l->setHref('');
131                $l->setRel('put');
132                $l->setAlt('Atualizar');
133                $l->setPrompt('Atualizar');
134                $l->setRender('link');
135
136                $c->addLink($l);
137
138                $h->setCollection($c);
139
140        }catch (Exception $ex){
141                $error = new Error();
142                $error->setCode(Response::INTERNALSERVERERROR);
143                $error->setTitle('Internal Server Error');
144                $error->setDescription($ex);
145
146                $c->setError($error);
147                $h->setCollection($c);
148
149                $response->code = Response::INTERNALSERVERERROR;
150                $response->body = $h->getHypermedia($request->accept[10][0]);
151                return $response;
152        }
153
154        $response->body = $h->getHypermedia($request->accept[10][0]);
155        return $response;
156  }
157}
158?>
Note: See TracBrowser for help on using the repository browser.