/** * Recebe um JSON no formato: * { * "id":valor, * "contato":{ * "nome":"valor", * "sobrenome":"valor" * } * } */ private function updateContato() { if ($this->get_request_method() !== 'POST') { $this->response('', API::STATUS_NOT_ACCEPTABLE); } $json = json_decode(file_get_contents("php://input"), true); // obtendo o id do objeto: $idContato = (int) $json['id']; // obtendo o json do objeto com os novos valores: $json_objeto = $json['contato']; // convertendo o json do objeto para um objeto: $objeto = DBJson::jsonToContato($json_objeto); // garantindo que nao haja tentativa de alteracao do id do objeto: $objeto->setId($idContato); // corrigindo os campos do objeto: // comentado: ao corrigir os campos null, estava alterando campos no banco de dados que nao havia sido // passados pelo JSON, fazendo com que eles ficassem em branco no banco de dados. //$objeto->correctNullFields(); // AQUI JA TEMOS O 'ID' E O 'OBJETO' COM OS NOVOS VALORES! if (DBObject::updateContato($objeto)) { $success = array('status' => 'Sucesso', 'msg' => 'Contato (' . $idContato . ') atualizado com sucesso.'); $this->response($this->json($success), API::STATUS_OK); } else { $this->response('', API::STATUS_NOT_FOUND); } }