- Timestamp:
- 06/15/12 14:49:24 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.4.1-3/prototype/rest/catalog/DynamicContactsResource.php
r6512 r6523 1 1 <?php 2 2 3 if ( !defined( 'ROOTPATH' ))4 define( 'ROOTPATH', dirname(__FILE__).'/..');5 6 require_once(ROOTPATH .'/rest/hypermedia/hypermedia.php');3 if (!defined('ROOTPATH')) 4 define('ROOTPATH', dirname(__FILE__) . '/..'); 5 6 require_once(ROOTPATH . '/rest/hypermedia/hypermedia.php'); 7 7 8 8 use prototype\api\Config as Config; … … 22 22 function get($request) { 23 23 24 $this->secured(); 25 24 26 $response = new Response($request); 25 27 $response->addHeader('Content-type', 'aplication/json'); … … 30 32 31 33 try { 32 // $this->secured(); 33 34 $dynamicContacts = Controller::find( 35 array( 'concept' => 'dynamicContact' ), 36 false, 37 array( 'filter' => array( '=', 'owner', Config::me("uidNumber") ), 38 'order' => array('number_of_messages','name','mail'), 39 'orderDesc' => array(true, false, false) ) 34 35 $dynamicContacts = Controller::find( 36 array('concept' => 'dynamicContact'), false, array('filter' => array('=', 'owner', Config::me("uidNumber")), 37 'order' => array('number_of_messages', 'name', 'mail'), 38 'orderDesc' => array(true, false, false)) 40 39 ); 41 40 42 41 //Se nao foi encontrado contatos na consulta 43 if($dynamicContacts===false){ 44 $error = new Error(); 45 $error->setCode(Response::NOTFOUND); 46 $error->setTitle('Dynamic Contacts not found'); 47 $error->setDescription('Dynamic Contacts not found.'); 48 49 $c->setError($error); 50 $h->setCollection($c); 51 52 $response->code = Response::NOTFOUND; 53 $response->body = $h->getHypermedia($request->accept[10][0]); 42 if (!$dynamicContacts) { 43 $this->createException($request, $response, Response::NOTFOUND, 'Bad request', 'Dynamic Contact not found.'); 54 44 return $response; 55 45 } 56 46 57 foreach($dynamicContacts as $value){58 $d = new Data(); 59 47 foreach ($dynamicContacts as $value) { 48 $d = new Data(); 49 $i = new Item($request->resources, 'DynamicContactsResource', $value['id']); 60 50 61 51 $d->setName('name'); 62 $d->setValue($value['name']); 63 $d->setPrompt('Nome do Contato Recente'); 64 $d->setDataType('string'); 65 $d->setMaxLength('100'); 66 $d->setMinLength(null); 67 $d->setRequired(true); 68 69 $i->addData($d); 70 71 $d = new Data(); 72 $d->setName('mail'); 73 $d->setValue($value['mail']); 74 $d->setPrompt('Email do Contato Recente'); 75 $d->setDataType('string'); 76 $d->setMaxLength('100'); 77 $d->setMinLength(null); 78 $d->setRequired(true); 79 80 $i->addData($d); 81 82 $d = new Data(); 83 $d->setName('number_of_messages'); 84 $d->setValue($value['number_of_messages']); 85 $d->setPrompt('Quantidade de mensagens enviadas'); 86 $d->setDataType('integer'); 87 $d->setMaxLength('100'); 88 $d->setMinLength(null); 89 $d->setRequired(false); 90 91 $i->addData($d); 92 93 $d = new Data(); 94 $d->setName('id'); 95 $d->setValue($value['id']); 96 $d->setPrompt('Id do contato dinamico'); 97 $d->setDataType('integer'); 98 $d->setMaxLength('100'); 99 $d->setMinLength(null); 100 $d->setRequired(false); 101 102 $i->addData($d); 103 104 $l = new Link(); 105 106 $l->setHref(''); 107 $l->setRel('delete'); 108 $l->setAlt('Remover'); 109 $l->setPrompt('Remover'); 110 $l->setRender('link'); 111 112 $i->addLink($l); 113 114 $l = new Link(); 115 $l->setHref(''); 116 $l->setRel('put'); 117 $l->setAlt('Atualizar'); 118 $l->setPrompt('Atualizar'); 119 $l->setRender('link'); 120 121 $i->addLink($l); 122 123 $l = new Link(); 124 $l->setHref('/dynamiccontact/'.$value['id']); 125 $l->setRel('get'); 126 $l->setAlt('Buscar'); 127 $l->setPrompt('Buscar'); 128 $l->setRender('link'); 129 130 $i->addLink($l); 131 $c->addItem($i); 132 } 133 134 $t = new Template(); 135 $d = new Data(); 136 137 $d->setName('name'); 138 $d->setValue(null); 139 $d->setPrompt('Nome do Contato Recente'); 140 $d->setDataType('string'); 141 $d->setMaxLength(100); 142 $d->setMinLength(null); 143 $d->setRequired(true); 144 145 $t->addData($d); 146 147 $d = new Data(); 148 $d->setName('mail'); 149 $d->setValue(null); 150 $d->setPrompt('Email do Contato Recente'); 151 $d->setDataType('string'); 152 $d->setMaxLength(100); 153 $d->setMinLength(null); 154 $d->setRequired(true); 155 156 $t->addData($d); 157 158 $d = new Data(); 159 $d->setName('number_of_messages'); 160 $d->setValue(null); 161 $d->setPrompt('Quantidade de mensagens enviadas'); 162 $d->setDataType('integer'); 163 $d->setMaxLength(100); 164 $d->setMinLength(null); 165 $d->setRequired(false); 166 167 $t->addData($d); 168 169 $c->setTemplate($t); 170 171 $h->setCollection($c); 172 173 }catch (Exception $ex){ 174 $error = new Error(); 175 $error->setCode(Response::INTERNALSERVERERROR); 176 $error->setTitle('Internal Server Error'); 177 $error->setDescription($ex); 178 179 $c->setError($error); 180 $h->setCollection($c); 181 182 $response->code = Response::INTERNALSERVERERROR; 183 $response->body = $h->getHypermedia($request->accept[10][0]); 184 return $response; 52 $d->setValue($value['name']); 53 $d->setPrompt('Nome do Contato Recente'); 54 $d->setDataType('string'); 55 $d->setMaxLength('100'); 56 $d->setMinLength(null); 57 $d->setRequired(true); 58 59 $i->addData($d); 60 61 $d = new Data(); 62 $d->setName('mail'); 63 $d->setValue($value['mail']); 64 $d->setPrompt('Email do Contato Recente'); 65 $d->setDataType('string'); 66 $d->setMaxLength('100'); 67 $d->setMinLength(null); 68 $d->setRequired(true); 69 70 $i->addData($d); 71 72 $d = new Data(); 73 $d->setName('number_of_messages'); 74 $d->setValue($value['number_of_messages']); 75 $d->setPrompt('Quantidade de mensagens enviadas'); 76 $d->setDataType('integer'); 77 $d->setMaxLength('100'); 78 $d->setMinLength(null); 79 $d->setRequired(false); 80 81 $i->addData($d); 82 83 $d = new Data(); 84 $d->setName('id'); 85 $d->setValue($value['id']); 86 $d->setPrompt('Id do contato dinamico'); 87 $d->setDataType('integer'); 88 $d->setMaxLength('100'); 89 $d->setMinLength(null); 90 $d->setRequired(false); 91 92 $i->addData($d); 93 94 $l = new Link(); 95 96 $l->setHref(''); 97 $l->setRel('delete'); 98 $l->setAlt('Remover'); 99 $l->setPrompt('Remover'); 100 $l->setRender('link'); 101 102 $i->addLink($l); 103 104 $l = new Link(); 105 $l->setHref(''); 106 $l->setRel('put'); 107 $l->setAlt('Atualizar'); 108 $l->setPrompt('Atualizar'); 109 $l->setRender('link'); 110 111 $i->addLink($l); 112 113 $l = new Link(); 114 $l->setHref('/dynamiccontact/' . $value['id']); 115 $l->setRel('get'); 116 $l->setAlt('Buscar'); 117 $l->setPrompt('Buscar'); 118 $l->setRender('link'); 119 120 $i->addLink($l); 121 $c->addItem($i); 122 } 123 124 $t = new Template(); 125 $d = new Data(); 126 127 $d->setName('name'); 128 $d->setValue(null); 129 $d->setPrompt('Nome do Contato Recente'); 130 $d->setDataType('string'); 131 $d->setMaxLength(100); 132 $d->setMinLength(null); 133 $d->setRequired(false); 134 135 $t->addData($d); 136 137 $d = new Data(); 138 $d->setName('mail'); 139 $d->setValue(null); 140 $d->setPrompt('Email do Contato Recente'); 141 $d->setDataType('string'); 142 $d->setMaxLength(100); 143 $d->setMinLength(null); 144 $d->setRequired(true); 145 146 $t->addData($d); 147 148 $d = new Data(); 149 $d->setName('number_of_messages'); 150 $d->setValue(null); 151 $d->setPrompt('Quantidade de mensagens enviadas'); 152 $d->setDataType('integer'); 153 $d->setMaxLength(100); 154 $d->setMinLength(null); 155 $d->setRequired(false); 156 157 $t->addData($d); 158 159 $c->setTemplate($t); 160 161 $h->setCollection($c); 162 } catch (Exception $ex) { 163 $this->createException($request, $response, Response::INTERNALSERVERERROR, 'Internal Server Error', $ex); 164 return $response; 185 165 } 186 166 … … 199 179 * @access public 200 180 * */ 201 function post($request){ 202 203 if(count($_POST) == 0){ 204 $response = new Response($request); 205 $response->code = Response::INTERNALSERVERERROR; 206 return $response; 181 function post($request) { 182 183 $this->secured(); 184 185 if (count($_POST) == 0) { 186 $response = new Response($request); 187 $response->code = Response::INTERNALSERVERERROR; 188 return $response; 207 189 } 208 190 … … 211 193 212 194 $params = array(); 213 foreach ($_POST as $key => $value){214 215 if( !isset( $map[ $key ] ) || $key == 'id' || $key == 'timestamp' || $key == 'number_of_messages' ){216 217 218 219 } 220 221 if (count($params) == 0){222 223 224 225 } 226 227 228 229 //$response->addHeader('Content-type', 'aplication/json');230 231 232 195 foreach ($_POST as $key => $value) { 196 197 if (!isset($map[$key]) || $key == 'id' || $key == 'timestamp' || $key == 'number_of_messages') { 198 continue; 199 } 200 $params[$key] = $value; 201 } 202 203 if (count($params) == 0) { 204 $response = new Response($request); 205 $response->code = Response::INTERNALSERVERERROR; 206 return $response; 207 } 208 209 210 $response = new Response($request); 211 $response->addHeader('Content-type', 'aplication/json'); 212 $response->code = Response::CREATED; 213 214 233 215 //completar os atributos 234 $params['owner'] = Config::me("uidNumber"); 235 $params['number_of_messages'] = '1'; 236 $params['timestamp'] = time(); 237 238 239 try{ 240 241 // $this->secured(); 242 243 $idDynamicContact = Controller::create( 244 array('concept' => 'dynamicContact'), 245 $params 246 ); 247 248 if(!$idDynamicContact){ 249 throw new Exception(Controller::service('PostgreSQL')->error); 250 } 251 252 }catch (Exception $ex){ 253 $response->code = Response::INTERNALSERVERERROR; 254 return $response; 255 } 256 257 $response->body = json_encode(array('abc'=>'123')); 258 259 return $response; 260 } 261 216 $params['owner'] = Config::me("uidNumber"); 217 $params['number_of_messages'] = '1'; 218 $params['timestamp'] = time(); 219 220 221 try { 222 $idDynamicContact = Controller::create( 223 array('concept' => 'dynamicContact'), $params 224 ); 225 226 if (!$idDynamicContact) { 227 throw new Exception(Controller::service('PostgreSQL')->error); 228 } 229 } catch (Exception $ex) { 230 $response->code = Response::INTERNALSERVERERROR; 231 return $response; 232 } 233 234 $response->body = json_encode(null); 235 236 return $response; 237 } 238 239 private function createException($request, &$response, $code, $title, $description) { 240 $response->code = $code; 241 242 $h = new Hypermedia(); 243 $c = new Collection($request->resources, 'DynamicContactResource'); 244 $e = new Error(); 245 246 $e->setCode($code); 247 $e->setTitle($title); 248 $e->setDescription($description); 249 250 $c->setError($e); 251 $h->setCollection($c); 252 253 $response->body = $h->getHypermedia($request->accept[10][0]); 254 } 262 255 263 256 } 257 264 258 ?>
Note: See TracChangeset
for help on using the changeset viewer.