addHeader('Content-type', 'aplication/json'); $response->code = Response::OK; $h = new Hypermedia(); $c = new Collection($request->resources, 'DynamicContactsResource'); try { // $this->secured(); $dynamicContacts = Controller::find( array( 'concept' => 'dynamicContact' ), false, array( 'filter' => array( '=', 'owner', Config::me("uidNumber") ), 'order' => array('number_of_messages','name','mail'), 'orderDesc' => array(true, false, false) ) ); //Se nao foi encontrado contatos na consulta if($dynamicContacts===false){ $error = new Error(); $error->setCode(Response::NOTFOUND); $error->setTitle('Dynamic Contacts not found'); $error->setDescription('Dynamic Contacts not found.'); $c->setError($error); $h->setCollection($c); $response->code = Response::NOTFOUND; $response->body = $h->getHypermedia($request->accept[10][0]); return $response; } foreach($dynamicContacts as $value){ $d = new Data(); $i = new Item($request->resources, 'DynamicContactsResource', $value['id']); $d->setName('name'); $d->setValue($value['name']); $d->setPrompt('Nome do Contato Recente'); $d->setDataType('string'); $d->setMaxLength('100'); $d->setMinLength(null); $d->setRequired(true); $i->addData($d); $d = new Data(); $d->setName('mail'); $d->setValue($value['mail']); $d->setPrompt('Email do Contato Recente'); $d->setDataType('string'); $d->setMaxLength('100'); $d->setMinLength(null); $d->setRequired(true); $i->addData($d); $d = new Data(); $d->setName('number_of_messages'); $d->setValue($value['number_of_messages']); $d->setPrompt('Quantidade de mensagens enviadas'); $d->setDataType('integer'); $d->setMaxLength('100'); $d->setMinLength(null); $d->setRequired(false); $i->addData($d); $l = new Link(); $l->setHref(''); $l->setRel('delete'); $l->setAlt('Remover'); $l->setPrompt('Remover'); $l->setRender('link'); $i->addLink($l); $l = new Link(); $l->setHref(''); $l->setRel('put'); $l->setAlt('Atualizar'); $l->setPrompt('Atualizar'); $l->setRender('link'); $i->addLink($l); $l = new Link(); $l->setHref('/dynamiccontact/'.$value['id']); $l->setRel('get'); $l->setAlt('Buscar'); $l->setPrompt('Buscar'); $l->setRender('link'); $i->addLink($l); $c->addItem($i); } $t = new Template(); $d = new Data(); $d->setName('name'); $d->setValue(null); $d->setPrompt('Nome do Contato Recente'); $d->setDataType('string'); $d->setMaxLength(100); $d->setMinLength(null); $d->setRequired(true); $t->addData($d); $d = new Data(); $d->setName('mail'); $d->setValue(null); $d->setPrompt('Email do Contato Recente'); $d->setDataType('string'); $d->setMaxLength(100); $d->setMinLength(null); $d->setRequired(true); $t->addData($d); $d = new Data(); $d->setName('number_of_messages'); $d->setValue(null); $d->setPrompt('Quantidade de mensagens enviadas'); $d->setDataType('integer'); $d->setMaxLength(100); $d->setMinLength(null); $d->setRequired(false); $t->addData($d); $c->setTemplate($t); $h->setCollection($c); }catch (Exception $ex){ $error = new Error(); $error->setCode(Response::INTERNALSERVERERROR); $error->setTitle('Internal Server Error'); $error->setDescription($ex); $c->setError($error); $h->setCollection($c); $response->code = Response::INTERNALSERVERERROR; $response->body = $h->getHypermedia($request->accept[10][0]); return $response; } $response->body = $h->getHypermedia($request->accept[10][0]); return $response; } /** * Salva um contato recente * * @license http://www.gnu.org/copyleft/gpl.html GPL * @author Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) * @sponsor Caixa Econômica Federal * @author José Vicente Tezza Jr. * @return retorna a uri do contato recente * @access public * */ function post($request){ if(count($_POST) == 0){ $response = new Response($request); $response->code = Response::INTERNALSERVERERROR; return $response; } //recupera os atributos definidos no conceito 'user' $map = Config::get('dynamicContact', 'PostgreSQL.mapping'); $params = array(); foreach($_POST as $key => $value){ if( !isset( $map[ $key ] ) || $key == 'id' || $key == 'timestamp' || $key == 'number_of_messages' ){ continue; } $params[$key] = $value; } if(count($params) == 0){ $response = new Response($request); $response->code = Response::INTERNALSERVERERROR; return $response; } $response = new Response($request); // $response->addHeader('Content-type', 'aplication/json'); $response->code = Response::CREATED; //completar os atributos $params['owner'] = Config::me("uidNumber"); $params['number_of_messages'] = '1'; $params['timestamp'] = time(); try{ // $this->secured(); $idDynamicContact = Controller::create( array('concept' => 'dynamicContact'), $params ); if(!$idDynamicContact){ throw new Exception(Controller::service('PostgreSQL')->error); } }catch (Exception $ex){ $response->code = Response::INTERNALSERVERERROR; return $response; } $response->body = json_encode(array('abc'=>'123')); return $response; } } ?>