Ignore:
Timestamp:
09/14/12 14:48:28 (12 years ago)
Author:
acoutinho
Message:

Ticket #3104 - Unificar recursos de listagem dos contatos pessoais

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/prototype/rest/catalog/PersonalContactResource.php

    r6528 r7221  
    88use prototype\api\Config as Config; 
    99 
    10 class ContactResource extends Resource { 
     10class PersonalContactResource extends Resource { 
    1111 
    1212    /** 
     
    1616     * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
    1717     * @sponsor    Caixa Econômica Federal 
    18      * @author     José Vicente Tezza Jr.  
     18     * @author     José Vicente Tezza Jr. 
    1919     * @return     Retorna uma lista de usuários do LDAP 
    2020     * @access     public 
     
    2222    function get($request, $id) { 
    2323 
    24         $response = new Response($request); 
    25         $response->addHeader('Content-type', 'aplication/json'); 
    26         $response->code = Response::OK; 
     24        $response = new Response($request); 
     25        $response->addHeader('Content-type', 'aplication/json'); 
     26        $response->code = Response::OK; 
    2727 
    28         $h = new Hypermedia(); 
    29         $c = new Collection($request->resources, 'ContactResource'); 
     28        $h = new Hypermedia(); 
     29        $c = new Collection($request->resources, 'PersonalContactResource'); 
    3030 
    31         try { 
    32             $this->secured(); 
     31        try { 
     32            $this->secured(); 
    3333 
    34             $contact = Controller::find( array( 'concept' => 'contact' ), false, array( 'filter' => array( 'AND', array('=', 'user',  Config::me("uidNumber") ), array('=', 'id', $id) )  ) ); 
     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")))); 
    3536 
    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.'); 
     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.'); 
    4243 
    43                 $c->setError($error); 
    44                 $h->setCollection($c); 
     44                $c->setError($error); 
     45                $h->setCollection($c); 
    4546 
    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(); 
     47                $response->code = Response::NOTFOUND; 
     48                $response->body = $h->getHypermedia($request->accept[10][0]); 
     49                return $response; 
     50            } 
    5351 
    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); 
     52            foreach($contacts as $value){ 
    6153 
    62                 $t->addData($d); 
     54                $i = new Item($request->resources, 'PersonalContactResource', $value['id']); 
    6355 
    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); 
     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); 
    7264 
    73                 $t->addData($d); 
     65                $i->addData($d); 
    7466 
    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); 
     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); 
    8375 
    84                 $t->addData($d); 
     76                $i->addData($d); 
    8577 
    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); 
     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); 
    9686 
    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); 
     87                $i->addData($d); 
    10788 
    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); 
     89                $l = new Link(); 
    11890 
    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'); 
     91                $l->setHref(''); 
     92                $l->setRel('delete'); 
     93                $l->setAlt('Remover'); 
     94                $l->setPrompt('Remover'); 
     95                $l->setRender('link'); 
    14596 
    146                 $c->addLink($l); 
    147                          
    148                 $h->setCollection($c); 
     97                $i->addLink($l); 
    14998 
    150         }catch (Exception $ex){ 
    151                 $error = new Error(); 
    152                 $error->setCode(Response::INTERNALSERVERERROR); 
    153                 $error->setTitle('Internal Server Error'); 
    154                 $error->setDescription($ex); 
     99                $l = new Link(); 
     100                $l->setHref(''); 
     101                $l->setRel('put'); 
     102                $l->setAlt('Atualizar'); 
     103                $l->setPrompt('Atualizar'); 
     104                $l->setRender('link'); 
    155105 
    156                 $c->setError($error); 
    157                 $h->setCollection($c); 
     106                $i->addLink($l); 
    158107 
    159                 $response->code = Response::INTERNALSERVERERROR; 
    160                 $response->body = $h->getHypermedia($request->accept[10][0]); 
    161                 return $response; 
    162         } 
     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'); 
    163114 
    164         $response->body = $h->getHypermedia($request->accept[10][0]); 
    165         return $response; 
    166   } 
     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    } 
    167175} 
    168176?> 
Note: See TracChangeset for help on using the changeset viewer.